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

7 浏览
0 Comments

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

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

所以,我在我的浏览器上尝试了以下操作,包括Chrome 17(开发版),Firefox 8和IE8。

  • 覆盖Object或Array构造函数
  • 修改__defineSetter__方法
  • 修改defineProperty方法

但对于(字面量)JSON数据,我无法做任何操作。

现代浏览器上的'JSON劫持'问题是否已经全部解决?

或者我该如何重现它?

0
0 Comments

问题的出现原因:

1. JSON劫持是一种信息泄露问题,是指某个恶意方在用户登录到使用API的应用程序时,请求您的JSON数据而不是真正的应用程序。

2. 简单的身份验证无法解决此问题,因为浏览器会免费发送身份验证信息,例如身份验证Cookie。

解决方法:

1. 使用ES5或更高版本的现代浏览器将不再直接受到此问题的影响。

2. 但是,深入的防御规则仍然很重要!这可能会防范未来的问题、回归等。

0
0 Comments

近代浏览器是否可能对'JSON劫持'进行操作?

'JSON劫持'是一种可能被滥用的方式,如果使用eval来解码JSON的话,就可能存在问题。但是,流行的JS库提供的JSON解码功能默认使用JSON.parse,只有在浏览器没有内置JSON支持时才会使用eval,因此只要你的代码没有编写错误,任何现代浏览器都不会受到该漏洞的影响。

解码并不是一个真正相关的问题,因为远程域无法读取响应,这是由于'同源策略'所限制的。但是,'同源策略'不适用于脚本标签。

因此,现代浏览器不会受到'JSON劫持'的影响,因为默认使用JSON.parse解码JSON,而且脚本标签不受'同源策略'的限制。

0