避免 JSON 劫持中的 ")]}',\n" 和 "{} &&" 的区别

15 浏览
0 Comments

避免 JSON 劫持中的 ")]}',\n" 和 "{} &&" 的区别

在阅读如何避免JSON劫持的文章时,我发现了各种方法,包括将所有内容都使用POST方式发送,或在响应开头添加内容使其不是有效的JavaScript。

最常见的在响应开头添加内容的方法似乎是在对象或数组前面添加{} &&。 Angular建议在开头添加)]}',\n

为什么Angular不使用更常见的{} &&方法?有一个方法不是完全安全的吗?在JavaScript中使用哪个方法更困难?抛开Angular不谈,选择较不受欢迎的方法是否有充分的理由?

0
0 Comments

在防止JSON劫持方面,任何阻止JSON响应被解析为JavaScript对象或数组的方法都将阻止这种JSON劫持的方法。

然而,正如这个回答所指出的那样,这实际上并不是一个问题,因为Firefox 3以后已经修复了这个问题。

谷歌在Gmail的响应中似乎在写作时在前面加上了`)]}'`。

关于是否值得进行保护,10000个请求中有3个请求来自于Firefox 2等已过时的浏览器。详见维基媒体Traffic Analysis Report from Jan 1-31 2014。

防止JSON劫持的方法可以参考这篇文章:https://security.stackexchange.com/a/7003/8340。

0