Google會像這樣返回json:throw 1; <dont be evil> { foo: bar}和Facebook的ajax有這樣的json:for(;;); {"error":0,"errorSummary": ""}他們?yōu)槭裁匆胖脤⑼V箞?zhí)行并生成無效json的代碼?如果它無效,他們將如何解析它;如果您嘗試評估它,它將崩潰嗎?他們只是將其從字符串中刪除(似乎很昂貴)嗎?這有什么安全優(yōu)勢嗎?出于安全考慮,對此:如果刮板在另一個(gè)域上,則它們將不得不使用script標(biāo)簽來獲取數(shù)據(jù),因?yàn)閄HR無法跨域工作。即使沒有,for(;;);攻擊者也將如何獲取數(shù)據(jù)?它沒有分配給變量,所以不會因?yàn)闆]有引用而被垃圾回收嗎?基本上要獲得跨域數(shù)據(jù),他們必須要做<script src="http://target.com/json.js"></script>但是,即使沒有前置崩潰腳本,攻擊者也無法使用任何Json數(shù)據(jù),除非將其分配給可以全局訪問的變量(在這些情況下不是)。崩潰代碼實(shí)際上無能為力,因?yàn)榧词箾]有崩潰代碼,他們也必須使用服務(wù)器端腳本來使用其站點(diǎn)上的數(shù)據(jù)。
人們?yōu)槭裁匆斎?ldquo; throw 1; json響應(yīng)前面的<dont be evil>”和“
元芳怎么了
2019-11-21 14:05:04