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

2016-01-01 15:55:42 +08:00
 plantain
1. 由于图片是[被动内容]( https://developer.mozilla.org/zh-CN/docs/Security/MixedContent),从图片攻击造成的影响较小,可以不处理,坏处就是 https 标志由绿色变成白色。 V2EX 目前好像就是这种策略。
2. 后台下载图片到自己的服务器,然后替换成下载后的图片,可能的坏处是图片版权(?)。知乎目前好像就是这种策略。
3. 图片代理,比如对于请求: https://abc.com/image?src=http://example.com/a.png 这样的形式,响应 http://example.com/a.png , nginx 好像就可以做到。
2262 次点击
所在节点    问与答
8 条回复
DT27
2016-01-01 16:06:11 +08:00
个人觉得 3 比较好,简单方便。但是 2 还可以防止外链图片失效。。。
FrankFang128
2016-01-01 16:07:50 +08:00
JavaScript: replace http with https

简单粗暴
kslr
2016-01-01 16:15:04 +08:00
这三种还要看业务敢不敢这么做
plantain
2016-01-01 16:25:09 +08:00
@FrankFang128 我刚才试了,如果原站不支持 https ,替换后是获取不到图片的。
FrankFang128
2016-01-01 16:56:00 +08:00
@plantain 获取不到就获取不到嘛……本来就是不安全的内容
jasontse
2016-01-01 17:05:57 +08:00
3 是个漏洞不考虑
v1024
2016-01-01 18:35:27 +08:00
2 楼真逗……
plantain
2016-01-01 18:48:34 +08:00
@jasontse 那样直接请求的话确实是一个漏洞
github issue 里图片的方式是 /abc/xyz 的形式,其中 abc 和 xyz 都很长的 16 进制数,可能是通过 abc 和 xyz 一一对应的方式(加盐 hash 或在数据库里映射)来防止直接请求的攻击的,都挺复杂的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/247673

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX