我的脚本被一些移动运营商内联 - 如何处理?
My scripts are inlined by some mobile carriers - How to deal with that?
有些页面无法在手机上正确接收(很多手机在法国):JavaScript 脚本元素是内联的。
而不是
<script src="static/jquery-2.1.3.min.js"></script>
我有
<script> ... content of the whole jQuery script ... </script>
作为内容安全策略header我设置禁止内联脚本,现代浏览器会阻止脚本的执行。
除了使用 HTTPS 之外,还有其他方法可以解决这个问题吗?也许某些指定页面的方法不应该被第三方重写?
备注:
- CSP header 不足以提示 third-party 进行转换
Cache-Control:no-transform
header也被忽略了
- 任何涉及添加内联脚本的答案都不是答案,因为目标是为了安全删除所有内联脚本
- 问题与补充脚本的注入无关(这不会破坏我的网站,因为浏览器被指示不要执行它们)但是现有脚本的内联
- 这个问题并不特定于任何操作员:我正在寻找一个(合理的)通用解决方案
这不是最优雅的解决方案,但您始终可以通过更改文件扩展名(这可能会导致 header 你发送)。
将文件作为 jquery.java
或其他扩展名提供。同样,这不是最优雅的解决方案,但正如 tadman 在评论中所说,有时处理混蛋并不容易。
您要求避免 HTTPS 的解决方案,但这是您应该做的。为您的所有内容使用 HTTPS,停止让这些 "helpful" 中间人破坏它。
给自己一个free TLS certificate(从 2015 年 9 月开始)。
目前公认的解决办法就是玩猫捉老鼠的游戏。如果您关心安全性(您必须为 CSP header 提供服务),您需要阻止这种攻击,而不是试图隐藏它。
有些页面无法在手机上正确接收(很多手机在法国):JavaScript 脚本元素是内联的。
而不是
<script src="static/jquery-2.1.3.min.js"></script>
我有
<script> ... content of the whole jQuery script ... </script>
作为内容安全策略header我设置禁止内联脚本,现代浏览器会阻止脚本的执行。
除了使用 HTTPS 之外,还有其他方法可以解决这个问题吗?也许某些指定页面的方法不应该被第三方重写?
备注:
- CSP header 不足以提示 third-party 进行转换
Cache-Control:no-transform
header也被忽略了- 任何涉及添加内联脚本的答案都不是答案,因为目标是为了安全删除所有内联脚本
- 问题与补充脚本的注入无关(这不会破坏我的网站,因为浏览器被指示不要执行它们)但是现有脚本的内联
- 这个问题并不特定于任何操作员:我正在寻找一个(合理的)通用解决方案
这不是最优雅的解决方案,但您始终可以通过更改文件扩展名(这可能会导致 header 你发送)。
将文件作为 jquery.java
或其他扩展名提供。同样,这不是最优雅的解决方案,但正如 tadman 在评论中所说,有时处理混蛋并不容易。
您要求避免 HTTPS 的解决方案,但这是您应该做的。为您的所有内容使用 HTTPS,停止让这些 "helpful" 中间人破坏它。
给自己一个free TLS certificate(从 2015 年 9 月开始)。
目前公认的解决办法就是玩猫捉老鼠的游戏。如果您关心安全性(您必须为 CSP header 提供服务),您需要阻止这种攻击,而不是试图隐藏它。