JSON劫持攻击 防御方案

https://wooyun.js.org/drops/%E5%88%A9%E7%94%A8JSONP%E8%BF%9B%E8%A1%8C%E6%B0%B4%E5%9D%91%E6%94%BB%E5%87%BB.html

0x04 修复 & 防御 方案


  1. 尽量避免跨域的数据传输,对于同域的数据传输使用xmlhttp的方式作为数据获取的方式,依赖于javascript在浏览器域里的安全性保护数据。
  2. referer的来源限制,利用前端referer的不可伪造性来保障请求数据的应用来源于可信的地方,此种方式力度较小,完全依赖于referer,某些情况下(如存在xss)可能导致被绕过
  3. token的加入,严格来说,这种利用javascript hijacking的方式获取数据是CSRF的一种,不过较之传统的CSRF不能获取数据只能提交而言,这种方式利用javascript可以获取一些敏感信息而已。如果我们能让攻击者对接口未知,就可以实现json hijacking的防御了。利用token对调用者的身份进行认证,这种方式对于调用者的身份会要求力度较细,但是一旦出现xss也可能导致前端Token的泄露,从而导致保护失效。
  4. 对于同域的json使用情况下,可以在数据的输出头部加入while(1);的方式避免数据被script标签的方式引用,这可以防止一些比较有特性的浏览器里导致的数据泄漏。

此外老外还提到了

  1. 使用CORS代替jsonp
  2. 不要在使用cookie的情况下使用jsonp交换数据

大概就这样,其中提到了独裁之类的玩意我就不说了。

原文地址:https://www.cnblogs.com/digdeep/p/14919659.html