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

关于用户引用站外图片时(图片是 http,站是 https),下面几种策略怎么取舍?

  •  
  •   plantain · 2016-01-01 15:55:42 +08:00 · 2338 次点击
    这是一个创建于 3279 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 由于图片是被动内容,从图片攻击造成的影响较小,可以不处理,坏处就是 https 标志由绿色变成白色。 V2EX 目前好像就是这种策略。
    2. 后台下载图片到自己的服务器,然后替换成下载后的图片,可能的坏处是图片版权(?)。知乎目前好像就是这种策略。
    3. 图片代理,比如对于请求: https://abc.com/image?src=http://example.com/a.png 这样的形式,响应 http://example.com/a.png , nginx 好像就可以做到。
    8 条回复    2016-01-01 18:48:34 +08:00
    DT27
        1
    DT27  
       2016-01-01 16:06:11 +08:00
    个人觉得 3 比较好,简单方便。但是 2 还可以防止外链图片失效。。。
    FrankFang128
        2
    FrankFang128  
       2016-01-01 16:07:50 +08:00
    JavaScript: replace http with https

    简单粗暴
    kslr
        3
    kslr  
       2016-01-01 16:15:04 +08:00
    这三种还要看业务敢不敢这么做
    plantain
        4
    plantain  
    OP
       2016-01-01 16:25:09 +08:00
    @FrankFang128 我刚才试了,如果原站不支持 https ,替换后是获取不到图片的。
    FrankFang128
        5
    FrankFang128  
       2016-01-01 16:56:00 +08:00
    @plantain 获取不到就获取不到嘛……本来就是不安全的内容
    jasontse
        6
    jasontse  
       2016-01-01 17:05:57 +08:00 via iPad
    3 是个漏洞不考虑
    v1024
        7
    v1024  
       2016-01-01 18:35:27 +08:00 via iPhone
    2 楼真逗……
    plantain
        8
    plantain  
    OP
       2016-01-01 18:48:34 +08:00
    @jasontse 那样直接请求的话确实是一个漏洞
    github issue 里图片的方式是 /abc/xyz 的形式,其中 abc 和 xyz 都很长的 16 进制数,可能是通过 abc 和 xyz 一一对应的方式(加盐 hash 或在数据库里映射)来防止直接请求的攻击的,都挺复杂的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1026 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:54 · PVG 03:54 · LAX 11:54 · JFK 14:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.