浏览器同源策略及Cookie的作用域

所谓"同源"指的是"三个相同":

1.协议相同
2.域名相同
3.端口相同

当着三个地方相同才算同源

例如:http://www.example.com:8888/dir/page.html

协议是http://
域名是www.example.com
端口是8888

采用同源策略的目的:是为了保证用户信息的安全,防止恶意的网站窃取数据。设想这样一种情况:A网站是一家银行,用户登录以后,又去浏览其他网站。

如果其他网站可以读取A网站的 Cookie,会发生什么?如果 Cookie包含隐私(比如存款总额),这些信息就会泄漏。更可怕的是,Cookie 往往用来保存用

户的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。因为浏览器同时还规定,提交表单不受同源政策的限制。由此可见,"同源政

策"是必需的,否则Cookie 可以共享,互联网就毫无安全可言了

 

缺点:如果不是同源

(1)Cookie、LocalStorage和IndexDB 无法读取
(2)DOM无法获得
(3)AJAX请求不能发送

Cookie的作用域:

Cookie有两个很重要的属性:Domain和Path,用来指示此Cookie的作用域:

  Domain告诉浏览器当前要添加的Cookie的域名归属,如果没有明确指明则默认为当前域名,比如通过访问www.vinceruan.info添加的Cookie的域名默认就是www.vinceruan.info,通过访问blog.vinceruan.info所生成的Cookie的域名就是blog.vinceruan.info

  Path告诉浏览器当前要添加的Cookie的路径归属,如果没有明确指明则默认为当前路径,比如通过访问www.vinceruan.info/java/hotspot.html添加的Cookie的默认路径就是/java/,通过blog.vinceruan.info/java/hotspot.html生成的Cookie的路径也是/java/

浏览器提交的Cookie需要满足以下两点:

1.当前域名或者父域名下的Cookie;
2.当前路径或父路径下的Cookie

要满足以上两个条件的Cookie才会被提交,例如:

当访问blog.vinceruan.info时

这里需要注意的是:在浏览器看来.

www.vinceruan.info不是blog.vinceruan.info的父域名,而vinceruan.info才是blog.vinceruan.info的父域名,

www.vinceruan.info也算是一个二级域名

这点如果你提交过域名到DNS服务器商的应该会知道,一般我们需要显式提交www.vinceruan.info和vinceruan.info, 否则www.vinceruan.info==vinceruan.info是不成立的

所以如果我们需要在所有二级域名下共享islogin=1的Cookie,用java代码如下:

如果要在所有的二级域名下的/java/路径下共享silogin=1的Cookie,用java代码如下:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值