CSRF安全漏洞以及防御实现

CSRF攻击原理

CSRF:跨站请求伪造

  • 用户访问一个正常网站例如www.baidu.com
  • 用户又访问了攻击者构造的恶意网站
  • 恶意网站可以让用户自动提交一个请求到目标网站(www.baidu.com)
  • 提交请求的操作不是恶意网站发起的而是恶意网站让用户发起的

CSRF防御

CSRF能够攻击成功的原因在于重要操作的所有参数都是可以被攻击者猜到的,攻击者只有预测出恶意请求的URL的所有参数,才能成功的构造一个伪造的请求。比如时候他要删除目标网站上的一个文章,攻击者必须知道删除操作的URL以及参数值
我们使用token来解决这个问题:

http://host/path/delete?username=abc&item=123&token=[random(seed)]

我们在url后面加一个Token,这个Token必须是随机的,由于Token的存在,攻击者无法再构造出一个完整的url来实施CSRF攻击。Token需要同时存放在请求和session中,当请求提交时,只需要验证请求中的token与用户session中的token是否相同,如果不相同则认为发生了CSRF攻击

你可能感兴趣的:(CSRF安全漏洞以及防御实现)