美文网首页前端
浏览器同源策略及Cookie的作用域

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

作者: LANSHENGYANG | 来源:发表于2020-07-27 01:00 被阅读0次

一、浏览器同源策略

1)概述
  • 1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。最初,它的含义是指,A网页设置的Cookie,B网页不能打开,除非这两个网页"同源"。所谓"同源"指的是"三个相同":
    [图片上传失败...(image-fc4329-1595907330371)]
  • 举例来说,http://www.example.com/dir/page.html这个网址,协议是http://,域名是www.example.com,端口是80(默认端口可以省略)。它的同源情况如下:
    [图片上传失败...(image-20d009-1595907330371)]
2)目的
  • 同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。设想这样一种情况:A网站是一家银行,用户登录以后,又去浏览其他网站。如果其他网站可以读取A网站的Cookie,会发生什么。
  • 很显然,如果Cookie包含隐私(比如存款总额),这些信息就会泄漏。更可怕的是,Cookie往往用来保存用户的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。因为浏览器同时还规定,提交表单不受同源政策的限制。由此可见,"同源政策"是必需的,否则Cookie可以共享,互联网就毫无安全可言了。
3)限制范围
  • 随着互联网的发展,"同源政策"越来越严格。目前,如果非同源,共有三种行为受到限制:
    [图片上传失败...(image-88b142-1595907330371)]
  • 虽然这些限制是必要的,但是有时很不方便,合理的用途也受到影响。例如,我同一个站点的两个不同域名不能共享Cookie;再例如,我的前端页面项目的域名与我后端Jetty服务的域名不同,那么我就无法发送Ajax请求来访问Jetty服务,等等。
  • 也就是说同源策略会带来一系列跨域访问的问题,我们如何来规避这些问题,主要JSONP与CORS两种方案。

二、Cookie作用域

1)Cookie概述
  • Cookie,顾名思义,小甜心,少食即可,多吃无益。主要是通过浏览器保存在客户端的一些安全性要求不高的临时数据。
2)Cookie两个重要属性
  • Cookie有两个很重要的属性:DomainPath,用来指示此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/。
3)Cookie作用域
  • 浏览器提交的Cookie需要满足以下两点:
    • 1.当前域名或父域名下的Cookie;
    • 2.当前路径或父路径下的Cookie。
  • 要满足以上两个条件的Cookie才会被提交。举个例子:有4个Cookie:
    [图片上传失败...(image-174e0f-1595907330371)]
  • 当我访问blog.vinceruan.info时:
    [图片上传失败...(image-e67714-1595907330371)]
  • 这里需要注意的是,在浏览器看来,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代码如下:
    [图片上传失败...(image-7762cd-1595907330371)]
  • 如果要在所有的二级域名下的/java/路径下共享silogin=1的Cookie,用java代码如下:
    [图片上传失败...(image-9ead6a-1595907330371)]

三、总结

  • 上面介绍了浏览器具有同源策略:协议相同、域名相同、端口相同,而由此也带来了一系列的跨域资源访问问题。还介绍了浏览器筛选Cookie并提交到服务器的规则:当前域名或者父域名下的并且是当前路径或父路径下的Cookie才会被提交到服务器

相关文章

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

    一、浏览器同源策略 1)概述 1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个...

  • 跨域

    同源:域名、协议、端口完全相同。(同源策略:浏览器的安全策略。) 跨域:浏览器对于javascript的同源策略的...

  • cookie在不同端口号可以共享吗

    可以共享,根据同源策略cookie是区分端口的,但是对浏览器来说,cookie是区分域,不区分端口的,在一个ip地...

  • 同源策略及跨域访问方案

    同源与跨域 浏览器同源策略 允许跨源访问使用CORS: 是HTTP的一部分 如何解决跨域读取Cookie二级域名不...

  • 前端问题总结

    1. 浏览器跨域问题: 跨域问题是浏览器为了安全实施的同源策略导致的,同源策略限制了来自不同源的document、...

  • 同源策略&跨域

    同源策略&跨域 什么是浏览器同源策略? 同源策略(Same Origin Policy,SOP)也叫单源策略(Si...

  • 同源策略,跨域请求处理

    跨域访问 - 跨域请求 同源策略 适用于浏览器的一种资源访问策略;同源策略(Same origin policy)...

  • H5跨域访问

    跨域访问是源于浏览器的同源策略而引申出来的概念 1、先了解什么是同源策略和跨域访问 同源策略、跨域解决方案 - R...

  • 使用Koa亲自体验跨域

    跨域问题的存在是因为浏览器都遵循同源策略 同源策略 1995年,同源政策由 Netscape 公司引入浏览器。目前...

  • 白帽子讲Web安全——笔记(二)

    浏览器安全功能 同源策略 1.同源:协议、域名、端口号2.同源策略的限制:DOM,Cookie、XMLHttpRe...

网友评论

    本文标题:浏览器同源策略及Cookie的作用域

    本文链接:https://www.haomeiwen.com/subject/emuolktx.html