其原理仍是挟持受害人的session,然后利用这个session去做点别的事情
按攻击的发生地点,RF (Request Forgery)可分两种:
1.本站RF (OSRF)
a.已登录的受害人访问本站页面,此页面中有攻击者注入的脚本
b.这个脚本调用 http://本站/转账给攻击者.jsp 由于受害人已登录,这个脚本可以成功执行
Note: 攻击者并非一定要注入脚本。注入图片也可以:
<img src=”http://本站/转账给攻击者.jsp”/>
2.跨站RF (XSRF)
a.已在normal.com登录的受害人访问attacker.com的页面,此页面中有攻击者注入的脚本
b.这个脚本调用 http://normal.com/转账给攻击者.jsp 由于受害人已登录,这个脚本可以成功执行
如何防止:
- 在表单页面生成一个随机的Token,处理表单时检查一下这个Token是否正确。
- 如果有害脚本读取这个表单页面,解析出token呢?- 不可能。因为浏览器同源策略不允许ajax脚本读取其他域名的页面。
- 不能通过HTTP Referer来判断请示是否来自本站,因为这个很容易伪造。