V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Quaintjade
V2EX  ›  问与答

为什么 HTTPS 含有 HTTP 资源依然被载入?

  •  
  •   Quaintjade · 2015-11-13 00:04:54 +08:00 · 8997 次点击
    这是一个创建于 3111 天前的主题,其中的信息可能已经有所发展或是发生改变。

    照理来说, https 页面如果引用了非 https 的资源,不是照理不会被浏览器加载的吗?
    可为什么实际上 http 的图片仍然会被加载,而不是被屏蔽?是因为即使被替换也不会有安全问题吗?
    试了下 IE11, Edge, Firefox 和 Chrome 都是这样。

    例如淘宝的用户页:

    再比如本页面:

    但是这样的话,中间人是不是依然可以把正常图片替换为广告图片?
    如果是的话,进一步想,如果某些支付 /银行网站页面的正常图片被替换成醒目的诈骗信息图片(比如闪烁的“你的安全受到威胁,请拨打 XXXXX 联系客服!”图片),不是仍然会对用户造成安全威胁吗?

    22 条回复    2015-11-13 10:13:45 +08:00
    heiybb
        1
    heiybb  
       2015-11-13 00:08:47 +08:00 via Android
    从来没听过说不加载
    mcfog
        2
    mcfog  
       2015-11-13 00:10:22 +08:00
    注意观察地址栏

    我猜 2020 年 chrome 率先默认拒绝加载这种资源
    ryd994
        3
    ryd994  
       2015-11-13 00:11:58 +08:00 via Android
    那你就上 hsts 啊
    hsts 可以全域名 https
    TakanashiAzusa
        4
    TakanashiAzusa  
       2015-11-13 00:12:00 +08:00
    浏览器会选择部分加载,但是地址栏图标会有变化
    图片一般都是加载的, js 的话不会自动加载,右边会有小盾牌提示
    lhbc
        5
    lhbc  
       2015-11-13 00:12:07 +08:00 via Android
    js 资源应该是不加载的
    图片问题不大
    Andy1999
        6
    Andy1999  
       2015-11-13 00:12:31 +08:00 via iPhone
    @heiybb 我的站引入 http Chrome 直接不加载 也不清楚为啥
    我是 src 里面的 http
    可能跟正文内容不一样吧
    hicdn
        7
    hicdn  
       2015-11-13 00:18:27 +08:00
    图片可以加载, js 不加载
    heiybb
        8
    heiybb  
       2015-11-13 00:21:00 +08:00
    @Andy1999 不清楚,我博客之前的背景是 src 里的 http ,但能正确加载。另外你博客的音乐播放好像出问题了=、=,开链接就开新歌,不断叠加,一开 F12 就只剩一首。
    lshero
        9
    lshero  
       2015-11-13 00:26:54 +08:00   ❤️ 1
    都是浏览器的安全策略问题啊

    以 IE 为例
    打开 IE-Internet 选项-安全-自定义级别-显示混合内容-禁用
    quericy
        10
    quericy  
       2015-11-13 00:34:02 +08:00
    @heiybb 貌似是 pjax 和音乐加载组件冲突?多重奏不要太带感 23333
    Quaintjade
        11
    Quaintjade  
    OP
       2015-11-13 00:51:11 +08:00 via Android
    @heiybb
    我知道 js 是不加载的,但以前没注意图片会加载。

    @mcfog
    我觉得地址栏还是 firefox 做得最好,显示锁加黄色三角,会引起注意。其他浏览器都只是显示和 http 一样的图标,一般用户不会那么注意。

    @ryd994
    你是从网站出发的想法,但网站制作者的安全意识从弱到强应该是:
    有意识上 https ,但页面出现混合内容;
    上了 https ,页面无混合内容;
    有意识用 HSTS 、 HSTS preload ;
    对 CDN 也用 HSTS 。
    也就是说,一个会用 HSTS 的网站制作者,一般来说本来就不会让页面出现 http 混合内容。
    而我想说的是从浏览器出发,即使网站制作者是渣渣、网站漏洞百出,也能尽可能保护用户安全。

    @lshero
    只是刚注意到主流浏览器默认安全级别都会显示混合内容的图片
    Quaintjade
        12
    Quaintjade  
    OP
       2015-11-13 00:53:49 +08:00 via Android
    @heiybb
    好像通过 flash/java 等插件以某些方式加载的非 https 资源不会被拦截,因为这属于插件自己的策略
    mfaner
        13
    mfaner  
       2015-11-13 00:59:56 +08:00   ❤️ 1
    IE 还有个,高级选项里“阻止混合了其他内容的不安全图像”这个打开了也不会显示并且有提示
    qw7692336
        14
    qw7692336  
       2015-11-13 01:00:55 +08:00
    chrome 地址栏显示黄色
    Quaintjade
        15
    Quaintjade  
    OP
       2015-11-13 01:05:18 +08:00 via Android
    @qw7692336
    咦,为啥我的 chrome 只是图标变成普通 http 而已?
    qw7692336
        16
    qw7692336  
       2015-11-13 01:08:27 +08:00
    SoloCompany
        17
    SoloCompany  
       2015-11-13 02:23:06 +08:00
    一般都会加载,只是不发送 referer 而已
    lshero
        18
    lshero  
       2015-11-13 02:24:31 +08:00
    @Quaintjade 其实你用 chrome 打开 https://mail.126.com/ 然后看看 Console 也就 JS 被拦截了,图片只是提示
    SharkIng
        19
    SharkIng  
       2015-11-13 03:28:10 +08:00
    从来不会不加载啊,只是有的时候会提示不安全,例如 16L 说的那样。

    比如我正在看你的帖子的时候 V2 被我永久 HTTPS 了,但是你的帖子里面的图片还是 HTTP 的

    现在的网站一般情况下都会加载,不加载那是以前
    xiaozhizhu1997
        20
    xiaozhizhu1997  
       2015-11-13 07:04:57 +08:00 via Android
    IE 会提示“此页包含安全的内容,也包含不安全的内容。是否加载不安全的内容?”
    gamexg
        21
    gamexg  
       2015-11-13 10:11:32 +08:00
    只会加载图片,认为图片引起的安全隐患比较小。
    上 Content Security Policy 可以使用引用白名单
    BOYPT
        22
    BOYPT  
       2015-11-13 10:13:45 +08:00
    本来不就是这样的么,不然的话 v2 上你们用图床还怎么显示图片。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   857 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:03 · PVG 04:03 · LAX 13:03 · JFK 16:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.