浏览器安全的基石是"同源政策"()很多开发者都知道这一点,但了解得不全面
本文详细介绍"同源政策"的各个方面,以及如何规避它
80
(默认端口可以省略)它的同源情况如下。现在A网页通过脚本设置一个 Cookie。
B网页就可以读到这个 Cookie
另外,服务器也可以在设置Cookie的时候指定Cookie的所属域名为一级域名,比如.; path=/
这样的话二级域名和三级域名不用做任何设置,都可以读取这个Cookie
如果两个网页不同源,就无法拿到对方的DOM典型的例子是iframe
窗口和/
向子窗口发出请求。注意该请求的查询字符串有一个callback
参数,用来指定回调函数的名字这对于JSONP是必需的。
服务器收到这个请求以後会将数据放在回调函数的参数位置返回。
上面代码中有一个字段是Origin
,表示该请求的请求源(origin)即发自哪个域名。
正是因为有了Origin
这個字段所以WebSocket才没有实行同源政策。因为服务器可以根据这个字段判断是否许可本次通信。如果该域名在白名单内服务器就会做出如丅回应。