我已经阅读了有关Google Gruyere page中防止 XSSI攻击的信息。
格鲁耶尔(Gruyere)的三个主要建议,以防止 XSSI攻击:
- 首先,使用前面讨论的XSRF令牌来确保仅将包含机密数据的JSON结果返回给您 自己的页面。
- 第二,您的JSON响应页面应仅支持POST请求,这将阻止通过脚本加载脚本 标签。
- 第三,您应确保脚本不可执行。执行此操作的标准方法是将一些不可执行的前缀附加到 就像])} while(1);
其他两个:
- 有一种称为JSONP的JSON变体,应避免使用,因为它允许按设计注入脚本。
- 还有E4X(用于XML的Ecmascript),它可能导致您的HTML文件被解析为脚本。令人惊讶的是,一种保护方式 针对E4X攻击的方法是在文件中放入一些无效的XML,例如 以上。
不向响应添加不可执行的前缀(例如,Facebook对 for(;;)或Google-)]}',\ n )。>
答案 0 :(得分:0)
在以下情况下,您会担心这种攻击:
1.您的站点使用dynamicJS。
2.并且这些页面包含个人数据或秘密令牌(csrf令牌)。
如果是,请使用以下最佳做法:
1.将静态脚本和内容与用户数据分开保存。
2.对JSON使用严格的POST方法。 (可以绕过)。
3.使用CRSF令牌在响应之前进行验证。
因此CSRF令牌足以确保安全,但安全性建议包括所有最佳实践。
谢谢,
杰基