是否可以在现代浏览器上进行“JSON劫持”?

时间:2011-12-21 09:27:16

标签: javascript json

最近我读了一些关于'JSON劫持'的文章,其中一些是here

所以,我尝试在我的浏览器,Chrome 17(dev),Firefox 8和IE8上进行以下操作。

  • 覆盖对象或数组构造函数
  • 修改__defineSetter__方法
  • 修改defineProperty方法

但我无法对(文字)JSON数据做任何事情。

“JSON劫持”问题是否都在现代浏览器上解决了? 或者我该如何重现它?

2 个答案:

答案 0 :(得分:2)

这不是解析JSON的合法应用程序 - JSON劫持是关于某些恶意方请求您的JSON数据而不是真实应用程序的信息泄露问题,而用户登录到通常使用api的应用程序。简单的身份验证没有帮助 - 因为浏览器发送身份验证信息,例如auth-cookie免费: - /。

但是对于ES5,目前大多数浏览器都不会受到此问题的直接影响。尽管如此,深度防守规则!并且可以防止未来的问题或回归等。

答案 1 :(得分:0)

如果使用eval来解码JSON,理论上可能会滥用此类内容。

当浏览器内置JSON支持时,提供JSON解码功能的流行JS库默认为JSON.parse,因此除非您的代码编写错误,否则任何最新的浏览器都不应该是易受攻击的。