CSRF(Cross Site Request Forgery)跨站点请求伪造。
CSRF的本质是当重要操作的参数都能被攻击者预测到,才能成功伪造请求。
一、场景演示
下图是一个伪造请求的场景,按顺序来看;
1、2是正常登陆并产生Cookie,3、4是在登陆后访问骇客的网站并发请求,5是服务器执行骇客发出的请求。
这个场景的关键就是带上Cookie伪造请求。
1)浏览器中的Cookie
浏览器有“Session Cookie”(临时Cookie)和“Third-party Cookie”(本地Cookie);
前者浏览器关闭后就失效了,后者指定了Expire时间,只有超过了时间才会失效。
默认会拦截“Third-party Cookie”的有IE6、IE7、IE8、Safari;
不会拦截的有Firefox、Opera、Chrome等,我就验证了Firefox、Chrome、以及IE8。
2)验证浏览器的支持
设计两个域名“www.normal.net”(正常的网站)和“www.csrf.net”(伪造的网站)
1. 访问“www.normal.net/cookie.php”页面,在cookie.php中设