2021 chrome 更新跨域规则,将对网站造成影响

news/2024/5/9 21:17:26/文章来源:https://blog.csdn.net/citywu123/article/details/121377264

chrome 更新跨域规则,将对网站造成影响

在 chrome v94 之后,之前没有问题的网站接口请求现在出现了错误:

Access to Css stylesheet at ‘http:xx’ from origin ‘http://xx‘ has been blocked by CORS policy: The request client is not a secure context and the resource is in more-prevate adddress space local

看到 CORS 这个让人有种跨域既视感,那么问题来了,之前能跨域现在不能了?是 chrome 增加了新的跨域规则了吗?如果是,好家伙,奇怪的知识又增加了!

为什么更新此功能

它是根据专用网络访问规范所述并进行实现的, 目的是为了防止网站对本地服务进行攻击.

怎么理解呢?假设我本地内网环境有一个 http 服务,可能是为了方便都开启了跨域访问。例如直接访问 http://127.0.0.1:8080/images 即可获取大量个人实战总结的高清无码学习资料(你品,你细品)。然后我访问了某个不怀好意的在线网站,页面中类似代码:

// 获取本地资源并上传到服务器
fetch('http://127.0.0.1:8080/images').then((res) => {res.arrayBuffer().then(buf=> {// Upload data to the server....// Upload data to the server....// Upload data to the server....})
});

让我们来看看哪些地址会受到此类攻击:

Address blockNameReferenceAddress space
127.0.0.0/8IPv4 Loopback[RFC1122]local
10.0.0.0/8Private Use[RFC1918]private
172.16.0.0/12Private Use[RFC1918]private
192.168.0.0/16Private Use[RFC1918]private
169.254.0.0/16Link Local[RFC3927]private
::1/128IPv6 Loopback[RFC4291]local
fc00::/7Unique Local[RFC4193]private
fe80::/10Link-Local Unicast[RFC4291]private
::ffff:0:0/96IPv4-mapped[RFC4291]see mapped IPv4 address

以上这些都是 非公共 IP 地址块,从公共页面请求私有服务的数据,或者从私有服务请求本地数据,都会触发上述错误。

由上图可知道,以下情况都是不允许的:

  • 从公共服务访问私有服务
  • 从公共服务访问本地服务
  • 从私有服务访问本地服务

如何解决此问题

  • 访问本地数据,即访问 http://localhost (或 http://127.*.*.*, http://[::1]) 则只需要把浏览的页面升级为 https 即可
  • 访问私有IP,升级目标地址和访问的页面都为 https
  • 从公共服务器(例如CDN)引用本地资源
  • 在试验阶段, 可以设置 chrome 浏览器 chrome://flags/#block-insecure-private-network-requests 值为 disabled, 但这预计会在 chrome v101 失效

另外,chrome目前还没有完全实现规范中的所有内容。例如除了上面的解决方案,还可能可以使用 cors 预请求进行授权。

如果使用预请求的方式,那个我们只需要在 options 响应头中设置 Access-Control-Allow-Private-Network:true 即可, 这是一种较为简单的方案。

后记

有网友提到:

好像这个新协议也挡不住文中下载例子的情况? https的钓鱼网站还是有的…只要升级https协议就行…好像有点鸡肋?

这是个好想法,我首先思考是我的举例有问题还是是规范确实有点鸡肋,想了一会感觉例子也没什么毛病,规范应该也不会出现这么严重的漏洞。

然后我打算重新找找相关资料,看看规范中有如何处理 还是会受到攻击 这个问题的?

https 是方法跨站请求伪造(csrf)的基础

  • HTTPS

    HTTPS by itself does nothing to defend against CSRF. However, HTTPS should be considered a prerequisite for any preventative measures to be trustworthy.
    HTTPS 本身并不能防御 CSRF。但是,HTTPS 应被视为任何值得信赖的预防措施的先决条件。

有同源策略来避免 csrf

  • CORS

    Fortunately, this request will not be executed by modern web browsers thanks to same-origin policy restrictions. This restriction is enabled by default unless the target web site explicitly opens up cross-origin requests from the attacker’s (or everyone’s) origin by using CORS with the following header: Access-Control-Allow-Origin: *

  • 幸运的是,由于同源策略 限制,现代网络浏览器不会执行此请求(诱骗受害者提交恶意请求)。默认情况下启用此限制,除非目标网站通过使用 带有以下标头的CORS明确打开来自攻击者(或每个人)来源的跨域请求:Access-Control-Allow-Origin: *

私有网络规范

  • 自己从预请求中决定是否允许访问

    with the following implication: private network requests are only allowed if their client is a secure context and a CORS-preflight request to the target origin is successful.

  • 当其客户端是安全上下文且对目标源的CORS 预检请求成功时,才允许私有网络请求。这里的 安全上下文 可理解为不被浏览器的安全工具拦截,即认为是安全。预请求中还可以设置 ip地址空间来指定什么范围内的地址可以访问。

总结

所以回过头来看,谷歌浏览器确实是会首先禁止直接向私有地址进行访问(这一层由私有网络规范限制)。然后如果例子中的 api 本就开放了允许所有域名可以请求,那么自然就会受到跨站攻击(这一层由 CORS 规范限制)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_832231.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊制作网站那些事

点击链接:我的第一个响应式网站 直接开门见山也不啰嗦了。 有很多小伙伴都问我响应式网站怎么做?但是做响应式网站又并非易事。 自己做响应式网站分为两种: 一、自己动手一个一个代码打出来,这种情况下你的网站实现响应式的几…

由于您访问的url有可能对网站造成安全威胁_网站索引量下降怎么办?

导致百度索引量下降的常见原因--一、网站方原因1、内容数据所在的网址url未规范统一【自己站点url规范统一】多域名都可以200状态正常访问网页内容;一域名下出现多种url形式可以访问相同内容,如大小写url、url规则变更等。解决:选择主域名(或…

python能开发网站吗_python可以开发网站吗

python可以开发网站,python在web开发方面强大的开发框架是django。做网站开发之前,同样要掌握一些python的基础语法。 1、python基础,因为用python开发的,所以python指定要会,最起码你也得会条件判断,循环&…

配置ssl证书_给自己的网站主页配置ssl证书

使用https?可以防止数据在传输过程中产生一些不必要的泄露,未?的页面在经过ssl证书的签发后会变成https开头,下面记录一下配置https加密的整个过程购买域名首先第一步我们为了防止自己的公网ip暴露出去,需要给自己的网站设定一个全球唯一的…

php网页框架模板,用PHP制作静态网站的模板框架(四)

用PHP制作静态网站的模板框架(四)更新时间:2006年10月09日 00:00:00 作者:静态网站的模板框架首先,我们象前面一样为所有的页面公用元素以及页面整体布局编写模板文件;然后从所有的页面删除公共部分,只留下页面内容&…

泰山200机架服务器包含哪些型号_网站站内优化步骤都有哪些呢

想要自己的网站展现在大众面前,对网站的优化是必不可少的,那么,在对网站优化的时候除了对网站的内容作出专业性强的展示,也要对网站的优化路线进行一个全面的规划,今天就来说一下网站的站内优化主要需要进行哪些操作呢…

phoenix 根据条件更新_企业网站seo优化,百度算法经常更新要怎么解决?

很多进行seo优化的朋友都在为百度快照更新带来的残酷脱毛而苦恼。解决百度算法更新的顾问:百度算法更新是我们每个优化人员最头疼的事情,更新后无数网站k、强权、排名登陆,所以很多优化的人跟随百度算法,在这里,我来说…

asp抓取网页某个标签内的_站内SEO最容易忽略的一些优化细节

网站需要做SEO优化,是每个站长都知道的事情,很多站长觉得自己网站的SEO优化管理工作环境就是发发文章,做做外链,再详细点就是在进行前期建站的时候,做些网站主要代码简化,robots的设置问题以及相关链接、导…

网博士cases_list_to_html.asp,校园网站的设计与实现

马场中学校园网站的设计与实现德育工作:是学校德育工作的窗口,也是对学生进行德育宣传的主要手段,同时还是教师为人师表的窗口之一。安全工作:以学校政策法规室和保卫科为主要服务对象,主要是对学生进行各种相关的人生…

如何复用linux内存管理算法,分配页 - Linux内存管理伙伴算法_Linux编程_Linux公社-Linux系统门户网站...

伙伴系统中用于分配页的函数如下:alloc_pages(mask,order)分配2^order页并返回一个struct page的实例,表示分配的内存块的起始页。alloc_page(mask)是前者在order0情况下的简化形式,只分配一页。get_zeroed_page(mask)分配一页并返回一个page…

学术源代码网站

今天发行一个学术源代码的网站 可代码下载学习网站 比起这些国内要币的 好太多了 https://yarpiz.com/

vue给元素设置css_使用CSS变换为您的网站元素设置动画

我们都被移动的物体和不寻常的方向所吸引。动画效果可用于改善用户界面或吸引用户注意项目的重要部分。在这篇文章中,我将向您展示如何应用不同的转换来改善您网站的可用性和设计。CSS转换您可以使用CSS属性以多种不同方式对网站元素进行转换,从而为网站…

奇奇seo优化软件_湖南seo网站优化软件

湖南seoxaa0c1网站优化软件,这个互联网时代,谁也不愿意在网络上缺席,企业商家更不愿意放弃网络这个巨大的宣传渠道,他们纷纷在网络上建立自己的企业网站,并且对网站进行多种优化,获取更多的流量&#xff0c…

个人博客网站的设计与实现_51个漂亮的个人博客和自媒体网站

程序猿老橙:如何免费做个人博客网站-全过程最新版本​zhuanlan.zhihu.com具体操作过程看上面!不管是设计师或是个人、明星、自媒体,都可以有自己的个人网站或博客,在做这网站之前当然是不少得设计一个漂亮的界面,这样能…

JAVA对接百度API提交普通收录/SEO

JAVA对接百度API提交普通收录/SEO 说明: 为了增加内容的曝光量,除了主动让百度爬虫爬取之外,还有普通收录的API提交,程序主动向百度搜索推送资源,缩短爬虫发现网站链接的时间。 官网地址:http://data.zz.…

爬取静态网站信息公司名称以及电话

文章目录爬虫需求:需要爬取的网站 [目标网站](http://shop.jc001.cn/r1-231/?p1)爬取内容:需要爬取网站的公司名称以及电话该网站有6000多条信息爬虫思路解析1.封装函数获取网站所有页码2.通过获取页面的url去解析获取每一个详情页的url3.网站详情页请求…

爬取动态网站阿里巴巴(1688)商家公司名称及联系方式

爬取动态网站阿里巴巴(1688)商家信息 文章目录爬取动态网站阿里巴巴(1688)商家信息(一)爬虫需求:1.目标网站:[阿里巴巴](https://s.1688.com/)2. 爬取阿里巴巴网站上供应商的商家的联…

java处理高并发高负载类网站的优化方法

java处理高并发高负载类网站的优化方法 转:http://blog.csdn.net/dengsilinming/article/details/9117735一:高并发高负载类网站关注点之数据库没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解…

使用Xcache缓存器加速你的PHP网站

由于国内网站备案比较麻烦,所以笔者便把网站放到了香港。虽然网站免去了备案的困扰,但是从访问速度上来看,一般要比放于国内的网站慢2-3倍,所以便想办法对网站做了一些简单的优化,比如使用缓存系统来提升网站页面访问速…

大型网站架构演变和知识体系

1、架构演变第一步:物理分离webserver和数据库 2、架构演变第二步:增加页面缓存 如用squid做页面缓存,或生产静态页面,不使用jsp 3、架构演变第三步:增加页面片段缓存 页面缓存失效情况比较多,因此可以使…