网站是 https 的,页面中动态加载了一张图片,地址是 http 的,此时浏览器会将 http 自动升级为 https ,而这个图片链接本身又是不支持 https 的,导致图片无法加载
请教一下各位这种情况有没有代码层面的解决方法?
请教一下各位这种情况有没有代码层面的解决方法?
|
xiawangSep 28, 2022
1
没有
|
|
hxysnailSep 28, 2022
2
将协议写完整 http://xxxx.com/xxxx.png 也会升级吗?感觉不合理呀……
|
|
lixuanyySep 28, 2022 via iPhone
3
这是浏览器的行为,js 也没办法。除非你是 http 站点。不会强制你用 https
|
|
cnrtingSep 28, 2022 via iPhone
4
把圖片放到自己的網站不就行啦
|
|
5
浏览器的安全策略,会在 https 网站内屏蔽非 http 链接
|
|
agoodSep 28, 2022
6
网站支持 https 的话就不要放 http 的内容了,不过也有两种办法
1.把图片等资源放到支持 https 的图床 2.服务器反向代理转为 https |
|
VegetableSep 28, 2022
7
怎么会自动升级?直接就 Mixed Content 屏蔽掉了才对。这情况哪怕你的图片支持 HTTPS 也无法读取
|
|
potaSep 28, 2022
8
不是直接屏蔽吗,为啥你那边是自动升级? 链接写了跟随协议?
|
|
9
自动升级应该是 meta 或者 headers 里设置了 Content-Security-Policy 为 upgrade-insecure-requests
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" /> |
|
zhuweiyouSep 28, 2022
10
没有,既然用了 https,又不全用,还不如取消,直接 http
|
|
PuteulanusSep 28, 2022
11
可以用一些支持 https 的公共 CDN 套一下,比如说 WordPress 的 https://developer.wordpress.com/docs/photon
纯粹的代码方面没啥解吧,浏览器期望的就是加密页面不要加载非加密资源 |
|
296727Sep 28, 2022
12
反代
|
|
baobao1270Sep 28, 2022
13
如果第三方资源地址是用户提供的话,建议缓存到自己服务器上。
第一,这样可以保护内容安全,防止第三方内容有敏感或带病毒,也可以防止一开始用正常资源骗过审核然后替换。 第二,防止数据和用户隐私泄露,随意加载第三方资源会让第三方知道你用户的 ip 地址和 referer ,甚至陈旧的浏览器会导致 cookie 泄露。 |
|
SainSep 28, 2022
14
配置 html meta 或 nginx 的 Content-Security-Policy
|
|
duan602728596Sep 28, 2022
15
其它网站推过来的,粘贴前格式化一边,图片转 base64 ,视频用占位。保存后图片存到自己的 cdn 上,视频转码,然后修改文章中的地址。
|
|
yulgangSep 28, 2022
16
解决了的话,浏览器会提示网站引用了不安全内容😁
|
|
18
@duan602728596 老哥这是个好思路
|
|
gogogo2000Sep 28, 2022
19
高版本 Chrome 会自动升级 https 页面中的 http 资源,即便链接写了 http 也没用。
现在已经没有任何方法可以绕过了 |
|
duan602728596Sep 28, 2022
20
@ohyeahhh 因为以前是在互联网新闻行业的,负责发布系统的开发和维护的
|
|
lyz1990Sep 29, 2022
21
图片视频应该转存到自己这边来,防止意外。比如第三方把图删了,或者第三方把图换成了违法内容。
|
|
xilou31Sep 29, 2022
22
写个脚本,一旦监测到有不是本站的资源。自动下载并存在本地,然后把链接替换。
|