[js]浏览器同源策略(same-origin policy)

浏览器的同源策略
浏览器同源政策及其规避方法html

什么是同源策略

A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源"。所谓"同源"指的是"三个相同"。ajax

https:// www.baidu.com: 80
协议相同 域名相同       端口相同
http://www.example.com/dir2/other.html  :同源
http://example.com/dir/other.html       :不一样源(域名不一样)
http://v2.www.example.com/dir/other.html:不一样源(域名不一样)
http://www.example.com:81/dir/other.html:不一样源(端口不一样)

同源策略规定

- 不一样源cookie不能互相获取: 保护cookie防止csrf攻击
- ajax不能异源请求

django的seesion和cookie机制-理解csrf攻击流程
django处理csrf攻击的方法django

同源政策的目的

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

设想这样一种状况:A网站是一家银行,用户登陆之后,又去浏览其余网站。若是其余网站能够读取A网站的 Cookie,会发生什么?flask

很显然,若是 Cookie 包含隐私(好比存款总额),这些信息就会泄漏。更可怕的是,Cookie 每每用来保存用户的登陆状态,若是用户没有退出登陆,其余网站就能够冒充用户,随心所欲。由于浏览器同时还规定,提交表单不受同源政策的限制。浏览器

因而可知,"同源政策"是必需的,不然 Cookie 能够共享,互联网就毫无安全可言了。安全

规避同源策略

同源政策规定,AJAX请求只能发给同源的网址,不然就报错。服务器

除了架设服务器代理(浏览器请求同源服务器,再由后者请求外部服务),有三种方法规避这个限制。cookie

JSONP
WebSocket
CORS

参考: ajax-异源请求jsonpsession

同源小结

- 同源是指 https:// www.baidu.com:80
           协议     域名          端口 三元素相同
- 不一样源cookie不能互相获取
- ajax不能异源请求(感受这是被扫黄时候误打了.)

附:
浏览器同源策略(same-origin policy)
csrf攻击防护核心点总结

django的cookie和session操做-7天免登陆
flask操做cookie&django的seesion和cookie机制

相关文章
相关标签/搜索