“)]}',\ n”和“{}&&”之间的区别在避免json劫持

时间:2014-02-24 21:38:04

标签: javascript angularjs json security

在阅读有关如何避免json劫持时,我遇到了各种各样的方法,包括POST一切或预先回复,因此它们不是有效的JavaScript。

最常见的前置方法似乎是在对象或数组前添加{} &&Angular suggests前置)]}',\n

为什么angular不使用更标准的{} &&方法?一个人不完全安全吗?在JavaScript中更难使用吗?除了角度之外,采用不那么受欢迎的方法是否有充分的理由?

1 个答案:

答案 0 :(得分:2)

任何阻止JSON响应被解析为JavaScript对象或数组的东西都会阻止这种JSON劫持方法。

请参阅this post了解一些methods of making your JSON secure

然而,作为this answer states,自Firefox 3以来它并不是真正的问题。

  

Google使用“无法解析的[cruft]”来防御这种类型的攻击。应该注意的是,此漏洞已在firefox 3中得到修复,此漏洞源于浏览器如何强制使用json规范。

在撰写本文时,Google似乎将)]}'添加到他们对Gmail的回复中。