源的含义
源指源头,信息来源的位置。在计算机中源在RFC454文档中规定,源是由协议、主机名、端口名组成。
例如:http://www.example.com与https?/www.example.com不是同源。
同源策略
在计算机中,同源策略(same-origin Policy,SOP)用于阻止一个非同源的页面恶意代码去访问另外一个非同源页面。
只有两个页面属于同一个源才能相互访问。不同源的客户端脚本在没有哦明确授权的情况下,不能读写对方的资源。所以a.com下的js脚本采用ajax读取b.com里面的文件数据是会报错的。
例如:源A页面要访问源B页面认证Cookie,如果不加阻止读取Cookie,会造成Coookie欺骗绕过登录验证。
注意:同源一定要是协议、主机名、端口号完全一致。
IE源的特殊处理
1、位于可信域(Trust Zones)的互信的域名间,不受同源策略限制。
2、IE在判断同源时不考虑端口。
可是通过document.domain读取或修改源。但是有限制,修改之后的源不能通过其他脚本再次修改。
两两不同源,可以通过设置document.domain=‘a.com’,浏览器就会认为它们都是同一个源。想要实现以上任意两个页面之间的通信,两个页面必须都设置document.domain=‘xxx’。
cookie介绍
指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。
Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息 。目前有些 Cookie 是临时的,有些则是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除 。
cookie是存储在客户端上的一小段数据,浏览器(即客户端)通过HTTP协议和服务器端进行cookie交互,通常用来存储一些不敏感信息。
cookie httponly
setcookie("abc","test",NULL,NULL,NULL,NULL,TRUE);
设置secure参数为true之后,就不能使用js获取cookie。