“这是我参加11月更新挑战的第一天,活动详情请查看:2021年最后一次更新挑战”
背景:由于公司业务关系,需要在本地环境中开通一个服务来获取相关资源,几个月前还是可以正常使用的。但是最近测试又回来了,出现了在线URL访问本地提示跨域的问题。经过仔细调查更新完谷歌浏览器无法访问google,发现安全策略已更新。
安全策略更新
正在计划阻止来自非安全网站的专用网络请求,以保护用户免受针对专用网络上的路由器和其他设备的跨站点请求伪造 (CSRF) 攻击:
总之更新完谷歌浏览器无法访问google,你在线部署的网站(以http协议开头)现在无法正常访问本地开放服务资源。
解决方案
打开浏览器并转到 ://flags
搜索块
设置为,就好了。
如果您的网站需要向其发出请求,那么您只需将您的网站升级为 HTTPS。
混合内容不会阻止请求定位(或 *.*.*、[::1]),即使来自安全上下文。
注意这里有一个陷阱,引擎和基于它的浏览器(例如)不遵循W3C混合内容规范,上述请求将被视为混合内容并被禁用。它们也不实现私有网络访问,因此使用此类浏览器客户端的网站需要使用 HTTP 协议,该协议仍然允许向它们发出请求。注意这里有一个陷阱,引擎和基于它的浏览器(例如)不遵循W3C混合内容规范,上述请求将被视为混合内容并被禁用。它们也不实现私有网络访问,因此使用此类浏览器客户端的网站需要使用 HTTP 协议,该协议仍然允许向它们发出请求。
存在的问题
如果您的网站需要向私有 IP 地址上的目标服务器发出请求,那么简单地将发起者网站升级到 HTTPS 是行不通的。混合内容会阻止安全上下文通过纯文本 HTTP 发出请求,因此新受保护的站点仍会发现自己无法发出请求。
HTTPS 仅适用于公共域名。你需要先为你的私网IP注册一个公网域名,然后配置DNS解析将公网域名指向这个私网IP,最后为域名配置一个TLS证书。
另外,也有私服搭建和cors预检的方式,但由于业务原因,作者一劳永逸地采用了两端https协议的升级。
评论留言