第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么要在渲染局部之前進(jìn)行escape_javascript?

為什么要在渲染局部之前進(jìn)行escape_javascript?

鳳凰求蠱 2019-12-10 10:03:27
我正在看這個(gè)Railscast插曲,想知道為什么在escape_javascript這里需要致電:$("#reviews").append("<%= escape_javascript(render(:partial => @review)) %>");有什么escape_javascript用?根據(jù)Rails的文檔:escape_javascript(javascript)轉(zhuǎn)義符返回以及JavaScript段的單引號(hào)和雙引號(hào)。但這對(duì)我來(lái)說(shuō)意義不大。
查看完整描述

3 回答

?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

是否因?yàn)槟幌M脩舭l(fā)布瀏覽器實(shí)際執(zhí)行的JavaScript?


查看完整回答
反對(duì) 回復(fù) 2019-12-10
?
qq_花開(kāi)花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果您在這里查看源代碼,它將更加清晰。

此功能完成以下兩件事:

  1. 它將輸入字符串中的字符替換為JS_ESCAPE_MAP中定義的字符

    這樣做的目的是確保javascript代碼正確序列化,而不會(huì)干擾嵌入它的外部字符串。例如,如果您的JavaScript字符串用雙引號(hào)引起來(lái),則字符串文字中的所有引號(hào)都必須用單引號(hào)引起來(lái),以免破壞代碼。

  2. 該函數(shù)還檢查結(jié)果字符串是否為html安全。如果不是,則進(jìn)行必要的轉(zhuǎn)義以確保該字符串變?yōu)閔tml安全并返回結(jié)果。

當(dāng)您使用escape_javascript時(shí),通常會(huì)動(dòng)態(tài)地將其嵌入到另一個(gè)字符串或現(xiàn)有的html中。您需要確保這樣做不會(huì)使整個(gè)頁(yè)面無(wú)法呈現(xiàn)。

其他回復(fù)中指出了此回復(fù)的某些方面,但我想將所有內(nèi)容放在一起,包括javascript轉(zhuǎn)義和html轉(zhuǎn)義之間的區(qū)別。此外,一些響應(yīng)暗示此功能有助于避免腳本注入。我認(rèn)為這不是此功能的目的。例如,在您的評(píng)論中,如果您的評(píng)論具有警報(bào)(“嗨,那里”),則僅將其附加到節(jié)點(diǎn)將不會(huì)觸發(fā)彈出窗口。您沒(méi)有將其嵌入在頁(yè)面加載或通過(guò)其他事件觸發(fā)的函數(shù)中。僅將alert('hi there')作為您的html的一部分并不意味著它將作為javascript執(zhí)行。

話雖如此,但我并不否認(rèn)不可能進(jìn)行腳本注入。但是要避免這種情況,在獲取用戶數(shù)據(jù)并將其存儲(chǔ)在數(shù)據(jù)庫(kù)中時(shí)需要采取步驟。您提供的功能和示例與呈現(xiàn)已保存的信息有關(guān)。

希望這對(duì)您有所幫助。


查看完整回答
反對(duì) 回復(fù) 2019-12-10
  • 3 回答
  • 0 關(guān)注
  • 926 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)