同源策略学习总结

版权声明:本文为博主原创文章,转载请注明原创链接! https://blog.csdn.net/qq_39112646/article/details/89314796

一:前言

JavaScript可以操作html,发出请求,也可以用iframe加载别的网站。

为了防止当前登陆的网站去访问另一个已登录网站的信息,控制这个请求成功与否就叫同源策略

同源策略明确规定:不同域的客户端脚本在没明确授权的情况下,不能读写对方的资源

如何判断是同源:协议相同+域名相同+端口相同

注:www.example.com和 example.com也不是同一个域名,因为在设置dns解析的时候,可以把这个两个域名设置为不同的IP地址。

 二:禁止跨源

如果在浏览器中使用fetch("https://example.com")跨源访问其他网站,则会报错(原因:CORS 头缺少 'Access-Control-Allow-Origin')

三:跨源访问

事情没有太绝对,虽然同源策略是为了保护隐私,即,不是同源不可以访问对方的信息

但是在某些实际情况下,是可以进行协商的

1.jsonp

本质:跨源的对方给  发出请求的源的一段JavaScript脚本执行,Script标签中的src属性是允许跨源的

2.CORS

原理:被请求的服务端获取发出请求方的请求后,给响应头加上Access-Control-Allow-Origin的相关信息,

浏览器就会放行请求,让请求方拿到数据

3.WebSocket

WebSocket是一种通信协议,使用 ws://(非加密)和wss://(加密)作为协议前缀

该协议不实行同源策略,只要服务器支持,就可以进行跨源通信

猜你喜欢

转载自blog.csdn.net/qq_39112646/article/details/89314796