加载带有任意(更改)脚本名称的JavaScripts

时间:2012-08-05 02:51:17

标签: javascript security

  

“像Facebook这样的网站使用动态更改的名称加载javascript文件,这会阻止它先前缓存JavaScript文件,因此无法完成此攻击。”

您可以详细了解此攻击向量here

使用更改名称加载JS文件可以降低缓存中毒的风险 - 因为第三方无法预测拦截哪些JS文件。

如果您知道如何在页面加载时动态更改JS文件的名称,或者可以链接到相关信息,我会很感激。这些知识对任何人都有价值。

1 个答案:

答案 0 :(得分:1)

  1. 为每个用户生成唯一的脚本密钥。 (将密钥存储在用户表中,或者只使用密钥哈希)

  2. 更改<script>标记以引用包含密钥和脚本名称的特殊服务器端处理程序。 (您可以使用路由引擎使URL更漂亮。

  3. 在服务器端代码中,检查密钥是否与当前登录的用户匹配 如果密钥不存在或不匹配,则返回404.(并记录安全审查请求)

  4. 这不适用于CDN或静态内容域。