1.XSS 跨站点脚本攻击
1 | www.tentou.com/index.html?name = <script> xssScript() </script> |
如果在邮件中,点击了上述链接,就会在当前页触发一个js程序,这个程序可以获取你的cookie,获取到sessionID,这样就可以伪造你的身份。
解决办法:
设置Cookie新属性HTTP-only
:不许通过脚本访问cookie
2.CSRF 跨站请求伪造
CSRF是利用网站对用户的信任来发起攻击。
例如:在邮件中插入一张图片:1
<img src='http://book.com/pay?bookid=100'/>
img
、script
、iframe
标签都是不受同源策略限制的,假设你使用的邮箱很直白地给用户即时显示这张图片,而该用户又刚好登录了book.com且没有关闭浏览器,那么src里的连接就会立刻访问book.com/pay页面,并按照已通过身份验证的情况来处理,从而做了购书的操作。
解决办法:
检查报头中的Referer参数确保请求发自正确的网站(但XHR请求可调用setRequestHeader方法来修改Referer报头);
对于任何重要的请求都需要重新验证用户的身份;
创建一个唯一的令牌(Token),将其存在服务端的session中及客户端的cookie中,对任何请求,都检查二者是否一致。