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