CSRF,全称Cross-site request forgery ,即跨站请求伪造:指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。
0x0 攻击过程
0x1 防御
- 将cookie设置为HttpOnly
- 检测Referer
HTTP头部的 Referer 用来记录HTTP请求的来源地址,一般情况下,来自本站的请求都是合法且安全的,而且对于比较敏感操作,必须设置来源本站,于是通过检测Referer信息,就可以避免此类攻击
3.设置token
在请求中放入攻击者无法伪造的东西,从而避免此类攻击,如在http请求中加入随机的token,然后在数据提交时,先进行token验证,如果正确,则继续后续操作,否则阻止继续进行。
4.验证码