为什么浏览器需要做跨域限制
防止CSRF攻击,比如说有两个网站 A和B。
你是A网站的管理员,你在A网站有一个权限是删除用户,比如说这个过程只需用你的身份登陆并且POST数据到 http://a.com/delUser,就可以实现删除操作。
好现在说B网站,B网站被攻击了,别人种下了恶意代码,你点开的时候就会模拟跨域请求,如果是针对你,那么就可以模拟对A站的跨域请求,恰好这个时候你已经在A站登陆了。那么攻击者在B站内通过脚本,模拟一个用户删除操作是很简单的。
面对这种问题,有从浏览器解决,但个人认为最好是从网站端解决,检测每次POST过来数据时热refer,添加accesstoken等都是好方法。
就是攻击者冒用用户的名义,向目标站点发送请求
防范方法:
- 在客户端进行cookie的hashing,并在服务端进行hash认证
- 提交请求是需要填写验证码
- 使用One-Time Tokens为不同的表单创建不同的伪随机值
跨站脚本攻击(XSS)最早迫使浏览器采用不信任互联网应用这个设计思想的攻击方式,就是跨站点脚本攻击。在这种攻击中,一个恶意的人员刀疤哥会向普通用户爱丽丝 发送一封电子邮件,邮件里有一个指向刀疤哥的网站的链接。爱丽丝毫无防备心地点击链接,让浏览器加载网页刀疤网,浏览器允许 JavaScript 程序默认在任何网页上运行,因此刀疤网上会有一个 JS 程序在爱丽丝的设备上运行,访问爱丽丝设备上她能访问的一些数据,然后秘密发送数据到刀疤哥的服务器上。程序可以通过各种方式访问