一 同源策略
1) 浏览器为了避免不同域名下,不同站点下脚本或资源相互访问'产生安全问题'所以浏览器有了同源策略
2) cookie含有用户的'隐私'信息,浏览器要'防止'不同的站点读取'对方'的cookie信息
3) 有了同源策略,又因为'可用性',又有了'跨域访问'的需求
② 为什么需要同源策略
1) 只有'地址栏'才是'用户主动'发起请求的
2) 其它的都是'浏览器渲染引擎'的行为
3) 会'导致'下面的'问题'
③ 没有同源策略下的Cookie两种场景
④ 浏览器的同源策略
⑤ 跨域的可用性和安全性
⑥ CSRF跨站请求伪造攻击
⑦ 如何防止CSRF攻击
思考:怎么'防止'CSRF? --> "三种策略"
1)通过Referer'简单'判断,不是我本站页面,我就'拒绝'
备注:但是如果浏览器'不是很规范',没有Referer浏览器就'没有办法'处理了
2) CSP响应头通过'限制'浏览器加载的资源,也可以一定程度上避免'CSRF'攻击
1) 攻击者试图欺骗用户,使得用户'以为访问的是银行站点',实际访问的是攻击者的伪造木马站点
2) 做到即使用户'误操作',也'不会'有严重的后果
3) 有时效性的token,'用户是看不到的',再次请求的时候是会'自动携带'的,服务器会进行验证
4) 攻击者是没办法'伪造有时效性和唯一性'的token
⑧ 答疑解惑
跨域主要针对的是'AJAX之类'的请求、JS等代码可以'读取HTTP响应'
⑨ 题外话
需求:nginx判断'手机'还是'PC,展示不同的'页面':
$http_user_agent ~* "(Android|iPhone|Windows Phone|UC|Kindle)"