在 http 网页中使用 CSP 能帮助防止 http 劫持吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
momocraft
V2EX    信息安全

在 http 网页中使用 CSP 能帮助防止 http 劫持吗?

  •  
  •   momocraft 2017-04-20 01:15:02 +08:00 4375 次点击
    这是一个创建于 3150 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个论坛不时被人注入外站脚本. 站本身内容不像有问题, 所以猜测是运营商的 http 劫持.

    我感觉在页面中用 CSP 限制脚本资源的域有可能改善 http 劫持, 有人做过类似的事吗?

    (这个论坛有大量 http 资源外链, 暂不能切 https)

    16 条回复    2017-06-07 09:27:55 +08:00
    Quaintjade
        1
    Quaintjade  
       2017-04-20 01:31:16 +08:00 via Android   1
    可以防简单粗暴的加塞脚本劫持。
    但理论上仍能劫持,比如把你 http 头的 csp 也篡改了。
    virusdefender
        2
    virusdefender  
       2017-04-20 01:39:32 +08:00 via iPhone
    还不错的,当然运营商是通用劫持,可能不会用上面的方法来单独针对你。
    caola
        3
    caola  
       2017-04-20 02:17:45 +08:00
    有可能会把全部的 CSP 响应头或标签干掉就完事了,但至少目前还没有发现这样的行为。

    不过建议你还是尽快切换为 https ,引用的 http 外链建议全部本地化。
    yyfearth
        4
    yyfearth  
       2017-04-20 05:57:58 +08:00
    可以暂时改善 但是 ISP 可以轻松的通过把你的 CSP 头去掉或者改掉 然后接着劫持
    yyfearth
        5
    yyfearth  
       2017-04-20 05:59:09 +08:00
    另外 ISP 还可以劫持 JS 脚本来做到同样的事情 CSP 就无能为力了
    nfroot
        6
    nfroot  
       2017-04-20 08:59:48 +08:00
    @Quaintjade js 写入 meta 劫持不了吧(可以在代码上稍微改变一下 meta 标签的特征)
    03
        7
    03  
       2017-04-20 09:36:54 +08:00
    外链的一般是图片吧,那应该可以试试把自己控制的都用 https ,虽然有警告但加载 http 图片一般是可以的
    qcloud
        8
    qcloud  
       2017-04-20 09:50:41 +08:00 via iPhone
    不能,配合 https 才有效
    Quaintjade
        9
    Quaintjade  
       2017-04-20 09:56:22 +08:00
    @nfroot
    既然是明文传输,理论上可以把你用来写入 meta 的那个 js 劫持或者篡改掉。
    当然这只是理论上的,实际上运营商不会费这么大力气来单独劫持你的网站。
    est
        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 的劫持也会插入到注释里去
    shiji
        11
    shiji  
       2017-04-20 10:07:22 +08:00
    另外你可以在某些页面插入自己的一段 js 脚本,随机把当前整个 html 里面的内容 post 回你的服务器,看看有没有遭到篡改。 一些浏览器插件也会修改,反正自己人工比较吧。
    nfroot
        12
    nfroot  
       2017-04-20 10:58:57 +08:00
    @est 于是自作聪明的劫持在代码开头写了一个<!-- 完美消除楼上带来的影响 --->,类似的还有 noscript 标签, noframes 标签哈哈哈哈
    est
        13
    est  
       2017-04-20 11:32:26 +08:00
    @nfroot 你写一个试试?我看看如何完美的。
    tinkerer
        14
    tinkerer  
       2017-04-20 21:58:35 +08:00
    @nfroot 我也想看您是怎么完美的。
    dong3580
        15
    dong3580  
       2017-06-07 09:19:44 +08:00
    @est
    不太明白,为什么这样写会
    est
        16
    est  
       2017-06-07 09:27:55 +08:00   1
    @dong3580 你看我 blog 源码就是这样处理过的 http://blog.est.im/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4977 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:37 PVG 17:37 LAX 01:37 JFK 04:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86