csrf 攻击原理:

# django使用(CsrfMiddleware)进行Csrf防护,原理如下:

1.它修改当前处理的请求,向所有的 POST 表单增添一个隐藏的表单字段,使用名称是 csrfmiddlewaretoken,

值为当前会话 ID 加上一个密钥的散列值。 如果未设置会话 ID ,该中间件将不会修改响应结果,

因此对于未使用会话的请求来说性能损失是可以忽略的。

2.对于所有含会话 cookie 集合的传入 POST 请求,它将检查是否存在 csrfmiddlewaretoken 及其是否正确。

如果不是的话,用户将会收到一个 403 HTTP 错误。 403 错误页面的内容是检测到了跨域请求伪装。 终止请求。

该步骤确保只有源自你的站点的表单才能将数据 POST 回来。

另外要说明的是,未使用会话 cookie 的 POST 请求无法受到保护,但它们也不 需要 受到保护,

因为恶意网站可用任意方法来制造这种请求。为了避免转换非 HTML 请求,中间件在编辑响应结果之

前对它的 Content-Type 头标进行检查。 只有标记为 text/html 或 application/xml+xhtml 的页面才会被修改。

CSRF设置步骤:
第一步: 在settings.py中的MIDDLEWARE_CLASSES部分添加’django.middleware.csrf.CsrfViewMiddleware’,如果使用普通方式创建的django项目,这一项一般都已经存在了不用额外设置。

第二步:在POST表单的template中加入csrf_token。这一步很简单,在模板中添加如下代码:

第三步:在请求处理方法中添加context processor。

使用RequestContext,RequestContext始终都使用了’django.core.context_processors.csrf’。

验证结果:

  • 本文固定链接: http://www.wpython.com/361.html
  • 转载请注明: Ted 2014年07月23日 于 小强的博客 发表

django csrf 防跨站攻击相关推荐

  1. 总结 XSS 与 CSRF 两种跨站攻击

    在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 [1] 已经成了普遍用法,我们已经离 SQL 注入很远了.但是 ...

  2. XSS与CSRF两种跨站攻击比较

    XSS:跨站脚本(Cross-site scripting) CSRF:跨站请求伪造(Cross-site request forgery) 在那个年代,大家一般用拼接字符串的方式来构造动态SQL 语 ...

  3. XSS和CSRF两种跨站攻击比较

    以下是我从一个大佬那转过来的 觉得写得非常非常好哈哈哈 忍不住想转载 可惜好像从博客园直接转过来转不过来 这是原文链接 XSS:跨站脚本(Cross-site scripting) CSRF:跨站请求 ...

  4. 总结XSS与CSRF两种跨站攻击

    XSS:跨站脚本(Cross-site scripting),实际应是"CSS",但由于和层叠样式表CSS名称冲突,故改为"XSS" CSRF:跨站请求伪造(C ...

  5. CSRF(跨站请求伪造)攻击 --

    CSRF(跨站请求伪造)攻击 CSRF(Cross Site Request Forgery,跨站请求伪造)是一种近年来才逐渐被大众了解的网络攻击方式,又被称为One-Click Attack或Ses ...

  6. Nancy启用跨站攻击防护(CSRF)

    什么是CSRF(跨站攻击) 可能很多人已经对CSRF有所了解,就简单的介绍下: CSRF全程是 Cross-Site Request Forgery .大概意思就是在登录用户不知情的情况下,由一个网站 ...

  7. PHP 防XSS跨站攻击

    //防止跨站攻击static public function removeXss($val){ $val = preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\ ...

  8. Django框架之跨站请求伪造

    跨站请求伪造(英语:Cross-site request forgery),也被称为one-click attack或者session riding,通常缩写为CSRF或者XSRF, 是一种挟制用户在 ...

  9. 【DVWA(五)】XXS存储型跨站攻击

    XSS存储型跨站攻击(Stored Cross Site Scripting) 前言: 相较于XSS反射型跨站攻击,存储型具有更严重的危害,如果在窃取信息的同时对网页没有任何变化,那受害者将很难发现. ...

  10. http referer 验证防御方法_渗透测试 跨站攻击防御与安全检测手法剖析

    上一节讲到了渗透测试中xss跨站攻击检测方法和防护,这一节也是关于跨站攻击的另一个手法CSRF,很多客户找到我们想要了解更多的跨站攻击检测方法以及防御此类攻击的办法,想要让网站的安全性更加坚固,对此提 ...

最新文章

  1. JSP和Servlet学习笔记1 - 访问配置
  2. opencv学习笔记3:像素处理
  3. 自制 移动端 纯原生 Slider滑动插件
  4. python加入中小学课程_通知:中小学将新增一门课!对2008-2013年出生的孩子影响最大!...
  5. html表格分页打印样式,vue部分打印(多页自动分页、打印样式自定义、多页打印表格页面顶部带表头)...
  6. 计算机编程结束进程代码,M代码如何停止CNC编程的程序
  7. VS启动调试速度异常的缓慢问题
  8. 启动两个tomcat,两个端口,两个tomcat都启动时回显示端口被占用
  9. 中国芯热情高涨 步履也更为坚实 近期我国多家企业再获“芯”突破
  10. 小程序开源框架选型及原理介绍
  11. 电子签章助力水电气公共事业服务“一网通办”
  12. PDF文档编辑Acrobat Pro DC
  13. 2021-2027全球与中国乳胶机械稳定性测试仪市场现状及未来发展趋势
  14. 详解ShellShock 漏洞复现原理,内附ShellShock的修复方法
  15. MAVEN5分钟入门
  16. vue-router 有哪几种导航钩子
  17. Excel Compare
  18. 分享一个免费分流抢票软件!一键全自动抢票
  19. SSM快速开发超市管理系统 用户详情功能实现(二)
  20. CMMI, 6 Sigma

热门文章

  1. 软件自动化测试脚本如何编写,编写自动化测试脚本的几点注意事项
  2. Java的图标和由来
  3. 我的Windows初始安装软件(技术型办公用电脑)
  4. 带中文说明书OSLO Light 6.2-ISO 1CD光学软件
  5. ENSP之STP协议基本配置教程
  6. 剩余方差matlab,用matlab的var函数求方差
  7. python3爬取网易云歌单数据清洗_网易云音乐爬虫 数据可视化分析
  8. 4.3.5 导频插入
  9. 六自由度机械臂SolidWorks模型转化成urdf文件,添加简单gazebo属性并修改为xacro
  10. 食品行业十大进销存软件功能大对比,我教你怎么选