CSRF简介

    

1.简介 
CSRF的全名为Cross-site request forgery,它的中文名为 跨站请求伪造

CSRF是一种夹持用户在已经登陆的web应用程序上执行非本意的操作的攻击方式。相比于XSS,CSRF是利用了系统对页面浏览器的信任,XSS则利用了系统对用户的信任。

原理:
攻击者盗用了你的身份,以你的名义发送恶意请求

CSRF能够做的事情有:
以你的名义发送邮件、发消息、盗取你的账号,甚至于购买商品,虚拟货币转账。。。。

造成问题:
个人隐私泄露以及财产安全


CSRF的防御:
cookie hash(所有表单添加伪随机值)、md5、验证码

 

构成CSRF攻击是有条件的:

  1、客户端必须一个网站并生成cookie凭证存储在浏览器中

  2、该cookie没有清除,客户端又tab一个页面进行访问别的网站

高级csrf攻击总结
CSRF攻击是源于Web的隐式身份验证机制!Web的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的
中级csrf攻击总结
网站开发者的错误点在于没有使用$_POST进行接收数据。当$_REQUEST可以接收POST和GET发来的数据,因此漏洞就产生了。

 服务器端防御:

  1、重要数据交互采用POST进行接收,当然是用POST也不是万能的,伪造一个form表单即可破解

  2、使用验证码,只要是涉及到数据交互就先进行验证码验证,这个方法可以完全解决CSRF。但是出于用户体验考虑,网站不能给所有的操作都加上验证码。因此验证码只能作为一种辅助手段,不能作为主要解决方案。

  3、验证HTTP Referer字段,该字段记录了此次HTTP请求的来源地址,最常见的应用是图片防盗链。PHP中可以采用APache URL重写规则进行防御

  4、为每个表单添加令牌token并验证

原文地址:https://www.cnblogs.com/110lsm/p/8626212.html