码迷,mamicode.com
首页 > 其他好文 > 详细

CORS(跨域资源共享)的防御机制

时间:2018-01-16 14:01:59      阅读:471      评论:0      收藏:0      [点我收藏+]

标签:res   客户   plain   pre   bsp   限制   头部   题解   header   

一、为什么会出现CORS:

  浏览器的同源策略给WEB开发人员带来了巨大的痛苦,信息的交互共享本来就是网络的意义。所以妥协之后出现了CORS。

二、技术原理:

1、简单跨域:

(1)方法要求:只能是GET、POST、HEAD方法。

(2)头部要求:只能有四个字段Accept、Accept-Language、Content-Language、Last-Event-ID;如果设置了Content-Type只能是application/x-www-form-urlencoded,multipart/form-data,text/plain三者之一。

(3)不满足上述条件约束的时候,会要求浏览器(客户端)先验证一个OPTIONS方法的报文,携带验证的头部字段,Access-Control-Request-Method和Access-Control-Request-Headers当得到服务器认可的resposne报文后则可以继续执行,认可字段:Access-Control-Allow-Origin、Access-Control-Allow-Methods、Allow-Control-Allow-Headers来表达认可的细则。

#此外还有:

Allow-Control-Max-Age(时间范围)、Allow-Control-Allow-Credentials(是否允许验证信息)、Allow-Control-Expose-Headers(是否允许脚本访问头)----XMLHttpRequest问题解决。参考本博客第一篇文章。

三、问题:

如果origin哪个头设置为*则只能依靠最后一层安全机制了:

Allow-Control-Allow-Credentials这个字段,XMLHttpRequest访问时跨域的,又带着cookie,这是不合法的,如果这个限制也没有了,基本上形同裸奔了。

###HTML5中会有进一步安全影响。

 

CORS(跨域资源共享)的防御机制

标签:res   客户   plain   pre   bsp   限制   头部   题解   header   

原文地址:https://www.cnblogs.com/KevinGeorge/p/8295919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!