我的脚本被一些移动运营商内联 - 如何处理?

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 之外,还有其他方法可以解决这个问题吗?也许某些指定页面的方法不应该被第三方重写?

备注:

这不是最优雅的解决方案,但您始终可以通过更改文件扩展名(这可能会导致 header 你发送)。

将文件作为 jquery.java 或其他扩展名提供。同样,这不是最优雅的解决方案,但正如 tadman 在评论中所说,有时处理混蛋并不容易。

您要求避免 HTTPS 的解决方案,但这是您应该做的。为您的所有内容使用 HTTPS,停止让这些 "helpful" 中间人破坏它。

给自己一个free TLS certificate(从 2015 年 9 月开始)。

目前公认的解决办法就是玩猫捉老鼠的游戏。如果您关心安全性(您必须为 CSP header 提供服务),您需要阻止这种攻击,而不是试图隐藏它。