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攻击

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://www.91ri.org/tag/fuzz-bug 通常情况下,有三种方法被广泛用来防御CSRF攻击...
    jdyzm阅读 9,646评论 0 5
  • CSRF & CORS 下面转的两篇文章分别说明了以下两个概念和一些解决方法: 1. CSRF - Cross-S...
    Elvis_zhou阅读 4,046评论 0 4
  • 本文是 Django 官网文档的翻译。官网链接:https://docs.djangoproject.com/en...
    学以致用123阅读 11,052评论 0 5
  • 转载地址:http://www.phpddt.com/reprint/csrf.htmlCSRF概念:CSRF跨站...
    matianhe阅读 4,516评论 0 104
  • 1 Web及网络基础 1.1 使用 HTTP 协议访问 Web Web 使用一种名为 HTTP(HyperText...
    yuhuan121阅读 5,905评论 1 2