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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這樣用`with`語句使用`eval`是否安全?

這樣用`with`語句使用`eval`是否安全?

溫溫醬 2021-04-12 16:14:00
模板實(shí)際上來自同一目錄中的index.html文件。上下文可以包含用戶輸入。const context = { id: 1 };const template = '<html><body>${id}</body></html>';with (context) {  return eval(`\`${template}\``);}我了解XSS保護(hù)。我正在尋找有關(guān)如何打破此解決方案的示例,用戶輸入可以以任何方式運(yùn)行后端代碼嗎?
查看完整描述

2 回答

?
蝴蝶不菲

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

根據(jù)context提供值的方式,可以進(jìn)行設(shè)置context.template。這將更改變量標(biāo)識符template以引用該屬性context.template,并將該屬性的值傳遞到中eval。

因此,您可以通過context類似這樣的屬性來執(zhí)行服務(wù)器端代碼

template: "${alert(1)}"

或者,如果context可以為屬性賦予函數(shù)值,則設(shè)置context.eval將允許立即執(zhí)行該函數(shù)。(但是,這不太可行,因?yàn)橛脩糨斎敫锌赡鼙黄毡橐暈樽址?。?/p>

您可以通過delete context.template; delete context.eval;在進(jìn)入該with塊之前進(jìn)行操作來避免這兩個問題。


查看完整回答
反對 回復(fù) 2021-04-22
  • 2 回答
  • 0 關(guān)注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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