MacOS 10.15 上的 Safari 访问 SMZDM 时,很多图片显示不出来

2020-08-21 16:02:34 +08:00
 f1ynnv2
Safari 连续用的时间久了,比如超过三小时,会发现 SMZDM 很多图片显示不出来,有时候京东的很多图片也加载不了。
每次出现这种情况的时候,要按 Mac+Q 完全退出 Safari,再打开这些网站就好了。今天看了一下,发现 SMZDM 这个网站上出现这类问题的图片都是来自 https://y.zdmimg.com 的,比如 https://y.zdmimg.com/202008/21/5f3f31d833f501579.jpg_d200.jpg
而这些图片直接用 Safari 打开又是正常。试了其它浏览器打开 SMZDM 从来没遇到这情况。

大家有没有遇到这情况的。
2190 次点击
所在节点    程序员
7 条回复
Yasir
2020-08-21 19:11:45 +08:00
贴吧也是
cst4you
2020-08-21 19:28:05 +08:00
referer 配置错了吧...
meisen
2020-08-21 22:11:11 +08:00
Safari 很多网站图片都有不能显示问题,特别是显示图床的时候更严重。

https://www.v2ex.com/t/686204#reply86
autoxbc
2020-08-21 22:57:19 +08:00
这类问题基本都是 lazyload 和 referrer 导致的,很多网站的代码非常脆弱,离了 Chrome 就无法运行
ysc3839
2020-08-22 11:18:04 +08:00
用开发者工具看看网络请求什么情况?
yuanfnadi
2020-08-22 14:48:17 +08:00
我来科普一下原理

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Referrer-Policy


之前浏览器的策略是 no-referrer-when-downgrade

no-referrer-when-downgrade (默认值)
在没有指定任何策略的情况下用户代理的默认行为。在同等安全级别的情况下,引用页面的地址会被发送(HTTPS->HTTPS),但是在降级的情况下不会被发送 (HTTPS->HTTP)。


新版本 safari 和 新版本 chrome (可能还没发布正式版 的策略变成了 strict-origin-when-cross-origin


strict-origin-when-cross-origin
对于同源的请求,会发送完整的 URL 作为引用地址;在同等安全级别的情况下,发送文件的源作为引用地址(HTTPS->HTTPS);在降级的情况下不发送此首部 (HTTPS->HTTP)。


这样会导致跨域的时候,图床没法知道网站具体的 url,鉴权不通过。
yuanfnadi
2020-08-22 14:50:36 +08:00
https://developers.google.com/web/updates/2020/07/referrer-policy-new-chrome-default

A new default Referrer-Policy for Chrome: strict-origin-when-cross-origin

新版本 chrome 也会改默认的 referrer 策略。

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

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

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

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

© 2021 V2EX