同源策略以及一些跨域方法

同源策略是前端安全的基石

        如果现在有不同的两个服务,其中a和b分别表示服务。a和b都有要保护的部分,那么我们就不能使a和b读取到另外的部分的数据,需要进行隔离和身份认证。 如果两个URL的协议、域名、端口号都相同,就称这两个URL同源。协议+域名+端口是确实一个站点的唯一标识符

origin

        Web内容的源用于访问它的URL的协议(方案)、主机(域名)、和端口号。只有当协议、主机、域名都匹配时,两个对象才具有相同的起源,即Origin相同。

        如果把html看做是一个文档夹,那么端口号是其存放位置的根目录,主机是其上级目录,协议是其上上级目录,同源策略就可以理解为同一根目录下的文件才可以访问、操作

        浏览器的同源策略目的是为了保护用户的网络安全,为了防止恶意网站窃取用户在浏览器上的数据,跨域问题是浏览器方面的

cors(跨源资源共享)

        是解决跨域问题的一种方法,http响应头中添加Access-Control-Allow-Origin来告诉浏览器,这个请求的源是被允许的,浏览器要取消这次请求的跨域限制.web服务器可以指定哪些域能访问到自己的资源

        a要去访问b,但是浏览器又不允许a去访问b。这时b需要去告诉浏览器,我允许a来访问我

        下面的响应头如果是ture

        一般情况下表示前后端我都是允许带上cookie

        服务器的另外一个可选的cors响应头是access-control-allow-credentials:ture,表示服务器允许客户端将凭证信息发送给服务器。

        通过响应头来判断,同源策略是浏览器的行为,所以我需要在服务端,通过响应头的方式告诉浏览器,我想要干什么

        使用cros的必要条件,缺一不可

        需要两个条件

                1.服务器要开启cors

                2.浏览器要支持cors

简单区分一下简单请求和复杂请求

         简单请求:在请求header中加上Origin字段, 告诉服务器这个请求来自哪个源(请求协议+域名+端口). 服务器收到请求后, 会对比这个字段, 如果字段值不在服务器的许可范围内, 服务器会返回一个正常的HTTP响应。

        复杂请求:表面上看起来和简单请求使用上差不多,但实际上浏览器发送了不止一个请求。其中最先发送的是一种"预请求"(options),此时作为服务端,也需要返回"预回应"作为响应。预请求实际上是对服务端的一种权限请求,只有当预请求成功返回,实际请求才开始执行。

jsonp

        也是一种解决跨域问题的方法:利用script标签的src属性没有跨域限制的特点进行跨域请求,服务器将数据放在一个指定的函数中返回,客户端收到数据后,执行js代码。客户端得到自己想要的数据。可以把不是同源的js代码请求到本地并且执行。jsonp只能实现单向的读操作(get)

代理服务器

        代理服务器又是一种方式,我们将请求发送到自己的服务器,然后服务器将请求发送到目标服务器,收到目标服务器的响应以后,最后服务器响应返回给浏览器。浏览器到服务器的请求并未跨域,也不会触发同源策略

这是纯服务端的操作

为什么需要同源策略
  1. 防止恶意网页可以获取其他网站的本地数据。
  2. 防止恶意网站在自已网站有访问其他网站的权利,以免通过cookie免登,拿到数据。
  3. 如果没有同源策略:如果没有同源策略的作用,任意站点之间可以可以操作资源,当你在访问一个合法网站的时候,又打开了一个恶意网站,包含了恶意脚本,恶意脚本便可以操作合法网站上的一切资源。
  4. 同源策略会隔离不同源的 DOM、页面数据和网络通信,进而实现 Web 页面的安全性。但是安全就要牺牲掉便利性。

        这几天学习一下web安全,本来只打算学一下注入的,结果发现水平不够(dogs),所以文章要是有错误,还请指正一下,谢谢~

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值