同源策略的介绍| 学习笔记

简介: 快速学习同源策略的介绍。

开发者学堂课程【Ajax 前端开发入门与实战同源策略的介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/595/detail/8540


同源策略的介绍

 

一、同源策略的概念

同源策略是浏览器的安全机制。

跨域的概念:

跨域,是源于一个叫做同源策略。

同源策略的概念:

同源策略是浏览器上为安全性考虑实施的非常重要的安全机制。Ajax 默认是能获取到同源的数据,对于非同源的数据,ajax 默认是获取不到。

目的:同源策略是为了保证用户信息的安全,防止恶意的网站窃取数据。

例子:比如有一个页面,它的地址为

http://www.example.com/dir/page.html,这个网址,在这个网址中,要去获取服务器的数据,获取数据的地址如下所示,在下面的地址中,有的是同源,有的是非同源。

image.png

同源就是协议、端口、域名三者都完全一样,如果使用 ajax, 来请求非同源路径下的数据,那么将会报错误

浏览器默认两个相同的源之间是可以相互访问资源和操作 DOM 的。两个不同的源之间若想要相互访问资源或者操作 DOM,那么会有套基础的安全策略的制约,我们把这称为 同源策略。它的存在可以保护用户隐私信息,防止身份伪造等

例子:

1.前端界面的地址:前端界面地址需要进行服务器数据获取,比如校验用户名的唯一性,需要获取服务器的数据,而这个数据也需要传递地址。

2.服务器数据的地址

注意:前端界面地址和服务器数据的地址必须处在同源的情况下,ajax才可以正常使用。

示例代码:

email.onblur = function(){

var emailValue = email.value;

var xhr = null;

if(window .XMLHttpRequest) {

xhr = new XMLHttpRequest();

}else {

xhr = new ActivexObject("Microsoft.XMLHTTP");

}

var param = "e=" + emailValue;xhr.open("post","http://www.lisi.com/server/checkEmail.php",true);xhr.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");

xhr.send(param);

xhr.oAreadystatechange = function(){

if(xhr.readyState == 4){

if(xhr.status ==200){

var result = xhr.responseText;

var email_result = document.querySelector( "#email_result");

if(result ==) {

//邮箱可用

email_result.innerText =“邮箱可以使用";

}else {

email result.innerText =“邮箱不可以使用";

}

出现如下情况:

image.png

非同源情况

1.如果交互页面的协议、主机名和非 Internet Explorer 端口号的浏览器匹配,则无需进一步检查即可访问

2. 任何页面都可以将 document.domain 参数设置为其当前主机名的右侧完全限定的片段,比如foo.bar.example. com 可以将其设置为 example.com,也可以为bar.example.com。

如果两个页面显式且相互将各自的 document.domain 参数设置为相同的值,并且满足了其余的同源检查,则允许访问

相关文章
|
JSON JavaScript 前端开发
学习 同源策略,jsonp,跨域 随记
学习 同源策略,jsonp,跨域 随记
41 0
|
4月前
|
JavaScript 安全 前端开发
什么是同源策略
什么是同源策略
25 0
|
4月前
|
安全 前端开发 JavaScript
CORS是W3C标准,解决浏览器同源策略限制的跨域数据访问。
【6月更文挑战第27天】CORS是W3C标准,解决浏览器同源策略限制的跨域数据访问。它通过服务器在HTTP响应头添加`Access-Control-Allow-*`字段允许特定源请求。简单请求无需预检,非简单请求会发OPTIONS预检请求。服务器配置CORS策略,客户端正常请求,浏览器自动处理。若未正确配置,浏览器将阻止响应,保障安全。
44 0
|
5月前
|
安全 前端开发 JavaScript
什么是同源策略?
什么是同源策略?
129 1
|
5月前
|
JavaScript 安全 API
同源策略介绍及解析
同源策略介绍及解析
77 0
|
5月前
|
JavaScript 前端开发 Go
浏览器中的同源策略
【1月更文挑战第2天】
|
JavaScript 安全 前端开发
浏览器基础原理-安全: 同源策略
浏览器基础原理-安全: 同源策略
60 0
|
JSON 前端开发 JavaScript
什么是浏览器同源策略?如何处理同源策略带来的跨域问题?
什么是浏览器同源策略?如何处理同源策略带来的跨域问题?
197 0
|
存储 JSON 安全
浏览器安全之同源策略
浏览器-安全策略
101 0
|
存储 前端开发 安全
同源策略
同源策略
111 0