关于 https 网站加载 http 资源自动升级的问题

2022-09-28 14:55:02 +08:00
 ohyeahhh
网站是 https 的,页面中动态加载了一张图片,地址是 http 的,此时浏览器会将 http 自动升级为 https ,而这个图片链接本身又是不支持 https 的,导致图片无法加载
请教一下各位这种情况有没有代码层面的解决方法?
2885 次点击
所在节点    JavaScript
22 条回复
xiawang
2022-09-28 14:57:32 +08:00
没有
hxysnail
2022-09-28 14:58:12 +08:00
将协议写完整 http://xxxx.com/xxxx.png 也会升级吗?感觉不合理呀……
lixuanyy
2022-09-28 14:58:38 +08:00
这是浏览器的行为,js 也没办法。除非你是 http 站点。不会强制你用 https
cnrting
2022-09-28 15:10:10 +08:00
把圖片放到自己的網站不就行啦
sunhelter
2022-09-28 15:11:47 +08:00
浏览器的安全策略,会在 https 网站内屏蔽非 http 链接
agood
2022-09-28 15:14:54 +08:00
网站支持 https 的话就不要放 http 的内容了,不过也有两种办法
1.把图片等资源放到支持 https 的图床
2.服务器反向代理转为 https
Vegetable
2022-09-28 15:16:32 +08:00
怎么会自动升级?直接就 Mixed Content 屏蔽掉了才对。这情况哪怕你的图片支持 HTTPS 也无法读取
pota
2022-09-28 15:24:54 +08:00
不是直接屏蔽吗,为啥你那边是自动升级? 链接写了跟随协议?
MAGA2022
2022-09-28 15:32:32 +08:00
自动升级应该是 meta 或者 headers 里设置了 Content-Security-Policy 为 upgrade-insecure-requests

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
zhuweiyou
2022-09-28 16:08:26 +08:00
没有,既然用了 https,又不全用,还不如取消,直接 http
Puteulanus
2022-09-28 16:21:36 +08:00
可以用一些支持 https 的公共 CDN 套一下,比如说 WordPress 的 https://developer.wordpress.com/docs/photon
纯粹的代码方面没啥解吧,浏览器期望的就是加密页面不要加载非加密资源
296727
2022-09-28 16:33:43 +08:00
反代
baobao1270
2022-09-28 16:35:32 +08:00
如果第三方资源地址是用户提供的话,建议缓存到自己服务器上。

第一,这样可以保护内容安全,防止第三方内容有敏感或带病毒,也可以防止一开始用正常资源骗过审核然后替换。

第二,防止数据和用户隐私泄露,随意加载第三方资源会让第三方知道你用户的 ip 地址和 referer ,甚至陈旧的浏览器会导致 cookie 泄露。
Sain
2022-09-28 16:49:45 +08:00
配置 html meta 或 nginx 的 Content-Security-Policy
duan602728596
2022-09-28 16:52:43 +08:00
其它网站推过来的,粘贴前格式化一边,图片转 base64 ,视频用占位。保存后图片存到自己的 cdn 上,视频转码,然后修改文章中的地址。
yulgang
2022-09-28 17:08:14 +08:00
解决了的话,浏览器会提示网站引用了不安全内容😁
ohyeahhh
2022-09-28 17:16:44 +08:00
@yulgang 看来你经历过
ohyeahhh
2022-09-28 17:17:07 +08:00
@duan602728596 老哥这是个好思路
gogogo2000
2022-09-28 17:52:57 +08:00
高版本 Chrome 会自动升级 https 页面中的 http 资源,即便链接写了 http 也没用。
现在已经没有任何方法可以绕过了
duan602728596
2022-09-28 19:10:13 +08:00
@ohyeahhh 因为以前是在互联网新闻行业的,负责发布系统的开发和维护的

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

https://tanronggui.xyz/t/883555

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

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

© 2021 V2EX