CORS(跨域资源共享)的防御机制
一、为什么会出现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(跨域资源共享)的防御机制的更多相关文章
- CORS跨域资源共享
CORS(跨域资源共享)跨域问题及解决 当使用ajax跨域请求时,浏览器报错:XmlHttpRequest error: Origin null is not allowed by Access-Co ...
- CORS跨域资源共享你该知道的事儿
"唠嗑之前,一些客套话" CORS跨域资源共享,这个话题大家一定不陌生了,吃久了大转转公众号的深度技术好文,也该吃点儿小米粥溜溜胃里的缝儿了,今天咱们就再好好屡屡CORS跨域资源共 ...
- 在ASP.NET Web API中实现CORS(跨域资源共享)
默认情况下,是不允许网页从不同的域访问服务器资源的,访问遵循"同源"策略的原则. 会遇到如下的报错: XMLHttpRequest cannot load http://local ...
- django上课笔记7-jQuery Ajax 和 原生Ajax-伪造的Ajax-三种Ajax上传文件方法-JSONP和CORS跨域资源共享
一.jQuery Ajax 和 原生Ajax from django.conf.urls import url from django.contrib import admin from app01 ...
- 跨域漏洞丨JSONP和CORS跨域资源共享
进入正文之前,我们先来解决个小问题,什么是跨域? 跨域:指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器的安全限制! 跨域常见的两种方式,分别是JSONP和CORS. 今天i ...
- 浅谈跨域问题,CORS跨域资源共享
1,何为跨域? 在理解跨域问题之前,你先要了解同源策略和URL,简单叙述: 1)同源策略 三同:协议相同,域名相同,端口相同: 目的:保证用户信息安全,防止恶意网站窃取数据.同源策略是必须的,否则co ...
- Node.js实现CORS跨域资源共享
什么是CORS CORS(Cross-origin resource sharing),跨域资源共享,是一份浏览器技术的规范,用来避开浏览器的同源策略 简单来说就是解决跨域问题的除了jsonp外的另一 ...
- tomcat7.0配置CORS(跨域资源共享)
平时我们做前台页面时可能会遇到浏览器以下提示(浏览器控制台): 已阻止跨源请求:同源策略禁止读取位于 http://xxx.xxx.com 的远程资源.(原因:CORS 头缺少 'Access-Con ...
- CORS(跨域资源共享)详解及与JSONP的对比
上篇讲解的JSONP的跨域请求方式,但是在浏览器的支持及请求方式上有局限性,接下来将介绍一种新的跨域请求方式CORS. CORS是一个W3C标准,全称是"跨域资源共享"(Cross ...
- CORS跨域资源共享简述
什么是CORS? 默认情况下,为预防某些而已行为,浏览器的XHR对象只能访问来源于同一个域中的资源.但是我们在日常实际开发中,常常会遇到跨域请求的需求,因此就出现了一种跨域请求的方案:CORS(Cro ...
随机推荐
- Loj 6036 「雅礼集训 2017 Day4」编码 - 2-sat
题目传送门 唯一的传送门 题目大意 给定$n$个串,每个串只包含 ' .问是否可能任意两个不同的串不满足一个是另一个的前缀. 2-sat的是显然的. 枚举每个通配符填0还是1,然后插入Trie树. 对 ...
- Bootstrap3基础 warning/active... 表格的状态类(不同的背景色)
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- centos6.5下安装tomcat
linux在安装tomcat之前必须已安装jdk 已下载好tomcat 拖到centos系统的桌面 现在在桌面目录下 mv apache-tomcat-8.5.39.tar.gz /usr/local ...
- (转载)Unity 关于动态监听时,点击Button,返回其在数组中的下标
其实是绕了一圈,把数组里的元素放进数组列表里再读取它的下标 using System.Collections; using System.Collections.Generic; using Unit ...
- 《Visual C# 从入门到精通》第二章方法和作用域——读书笔记
第2章 方法和作用域 2.1创建方法 方法是一个基本的,强大的编程机制.可视为函数或者子程序相似的东西. 方法名是个有意义的标识符. 方法主体包含方法被调用时实际执行的语句. 声明一个方法的实例如下: ...
- Rancher2.0中邮件通知的设置
1-邮件通知的设置-中国电信189邮箱 2-2-邮件通知的设置-腾讯免费企业邮箱 **说明:网易163邮箱.QQ邮箱没有设置成功,可能是因为邮箱设置得太安全的缘故. 参考链接: 中国电信189邮箱 ...
- fast-route的使用
<?php require 'vendor/autoload.php'; // 通过 FastRoute\simpleDispatcher() 方法定义路由,第一个参数必须是 FastRoute ...
- 万年不变话题cookie,简单总结
cookie是面试中经常会问到的一个问题,但是就我的项目实践来看,我用到的次数极少.有时候用到也不是为了存储用户名密码,只是存储一些需要记住的状态.可能和我的经验尚浅,涉足的项目不算多有关.这里简单做 ...
- js 里面的那些节省字节的写法 a|0 void 0等等
//取整 parseInt(a,10); Math.floor(a); ~~a; //节省之后的写法 a|0; //节省之后的写法 //四舍五入 Math.round(a); a+.5|0; //节省 ...
- 布局神器 display:flex;
布局神器 display:flex; 2009年,W3C提出了一种新的方案--Flex布局,可以简便.完整.响应式地实现各种页面布局.目前已得到所有现在浏览器的支持. 一.Flex布局是什么? Fle ...