有一个论坛不时被人注入外站脚本. 站本身内容不像有问题, 所以猜测是运营商的 http 劫持.
我感觉在页面中用 CSP 限制脚本资源的域有可能改善 http 劫持, 有人做过类似的事吗?
(这个论坛有大量 http 资源外链, 暂不能切 https)
|  |      1Quaintjade      2017-04-20 01:31:16 +08:00 via Android  1 可以防简单粗暴的加塞脚本劫持。 但理论上仍能劫持,比如把你 http 头的 csp 也篡改了。 | 
|  |      2virusdefender      2017-04-20 01:39:32 +08:00 via iPhone 还不错的,当然运营商是通用劫持,可能不会用上面的方法来单独针对你。 | 
|  |      3caola      2017-04-20 02:17:45 +08:00 有可能会把全部的 CSP 响应头或标签干掉就完事了,但至少目前还没有发现这样的行为。 不过建议你还是尽快切换为 https ,引用的 http 外链建议全部本地化。 | 
|  |      4yyfearth      2017-04-20 05:57:58 +08:00 可以暂时改善 但是 ISP 可以轻松的通过把你的 CSP 头去掉或者改掉 然后接着劫持 | 
|  |      5yyfearth      2017-04-20 05:59:09 +08:00 另外 ISP 还可以劫持 JS 脚本来做到同样的事情 CSP 就无能为力了 | 
|  |      6nfroot      2017-04-20 08:59:48 +08:00 @Quaintjade js 写入 meta 劫持不了吧(可以在代码上稍微改变一下 meta 标签的特征) | 
|  |      703      2017-04-20 09:36:54 +08:00 外链的一般是图片吧,那应该可以试试把自己控制的都用 https ,虽然有警告但加载 http 图片一般是可以的 | 
|  |      8qcloud      2017-04-20 09:50:41 +08:00 via iPhone 不能,配合 https 才有效 | 
|  |      9Quaintjade      2017-04-20 09:56:22 +08:00 | 
|  |      10est      2017-04-20 09:59:37 +08:00  1 运营商劫持的原理是把 xxxx.js 改成 他们的广告 js 然后最后加一句 document.write("xxxx.js?v=123123") 其中 v=123123 就是劫持白名单 最好的办法是页面中的 js 的 URL 不以 js 结尾。 然后页面要这样写: <html> <!-<head> </head>--> <head> ... </head> <!-<head></head><body>--> <body> </body> </html> 这样一些自作聪明插入 js 的劫持也会插入到注释里去 | 
|  |      11shiji      2017-04-20 10:07:22 +08:00 另外你可以在某些页面插入自己的一段 js 脚本,随机把当前整个 html 里面的内容 post 回你的服务器,看看有没有遭到篡改。 一些浏览器插件也会修改,反正自己人工比较吧。 | 
|  |      12nfroot      2017-04-20 10:58:57 +08:00 @est 于是自作聪明的劫持在代码开头写了一个<!-- 完美消除楼上带来的影响 --->,类似的还有 noscript 标签, noframes 标签哈哈哈哈 | 
|  |      16est      2017-06-07 09:27:55 +08:00  1 @dong3580 你看我 blog 源码就是这样处理过的 http://blog.est.im/ |