CSRF是Cross Site Request Forgery的缩写(也缩写为CSRF),直译过来就是跨站请求伪造的意思,也就是在用户会话下对某个CGI做一些GET/POST的事情。这些事情用户未必知道和愿意做,你可以把它想做HTTP会话劫持。
网站是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个标识其身份的cookie,只要不关闭浏览器或者退出登录,以后访问这个网站会带上这个cookie。如果这期间浏览器被人控制着请求了这个网站的url,可能就会执行一些用户不想做的功能(比如修改个人资料)。因为这个不是用户真正想发出的请求,这就是所谓的请求伪造,因为这些请求也是可以从第三方网站提交的,所以前缀跨站二字。
举个简单的例子,某个bbs可以贴图,在贴图的URL中写入退出登陆的链接,当用户阅读这个帖子之后就会logout了,因为用户以自己的身份访问了退出登陆链接,在用户看来是帖子里面有一张有问题的“图片”,而不是想要退出,但程序就会认为是用户要求退出登陆而销毁其会话。这就是传说中的CSRF攻击了。
千万别小看CSRF漏洞哦~
那么怎么处理这样的漏洞呢?
Github上给出了我们想要的答案:https://github.com/GDSSecurity/Anti-CSRF-Library