iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python Djanjo csrf说明与配置
  • 308
分享到

python Djanjo csrf说明与配置

pythonDjanjocsrf说明与配置 2015-01-30 20:01:22 308人浏览 绘本

Python 官方文档:入门教程 => 点击学习

摘要

 Django csrf  CSRF 全称(Cross Site Request Forgery)跨站请求伪造。也被称为One Click Attack和Session Riding,通常缩写为CSRF或XSRF。你可以这样理解:攻击者(黑

 Django csrf 

CSRF 全称(Cross Site Request Forgery)跨站请求伪造。也被称为One Click Attack和Session Riding,通常缩写为CSRF或XSRF。你可以这样理解:攻击者(黑客,钓鱼网站)盗用了你的身份,以你的 名义发送恶意请求,这些请求包括发送邮件、发送信息、盗用账号、购买商品、银行转账,从而使你的个人隐私泄露和财产损失。

CSRF原理

1、用户登录并信任网站A
2、验证通过,在用户处产生A的Cookie
3、用户在没有登出网站A的情况下,访问危险网站B
4、网站B要求访问第三站点网站A,发出一个request
5、根据网站B的请求,浏览器带着网站A产生的Cookie访问网站A
6、网站A不知道请求是用户发出的还是网站B发出的,由于浏览器会自动带上用户Cookie,所以网站A会根据用户的权限处理请求,这样网站B就达到了模拟用户操作的目的

从上面步骤中可以看出,要完成一次CSRF攻击,受害者必须依次完成以下两个步骤:

登录受信任网站A,并在本地生成Cookie
在不登出A的情况下,访问危险网站B
看到这里,你也许会问:如果我不满足以上两个条件中的一个,我就不会受到CSRF攻击。是的,确实如此,但是你不能保证以下情况不会发生

你不能保证你登录了一个网站之后,不再打开一个tab页面并访问其他的网站
你不能保证你关闭浏览器之后,你本地的Cookie会立刻过期,你上次的会话已经结束
上述中所谓的攻击网站,可能就是一个钓鱼网站

CSRF攻击实例
听了这么多,可能大家还云里雾里,光听概念可能大家对于CSRF还是不够了解,下面我将举一个例子来让大家对CSRF有一个更深层次的理解。

我们先假设支付宝存在CSRF漏洞,我的支付宝账号是wl,攻击者的支付宝账户是xxx,然后我们通过网页请求的方式 Http://zhifubao.com/withdraw?account=lyq&amount=10000&for=wl 可以把账号的wl的10000元转到我的另外一个 账户wl上面去。通常这个情况下,该请求发送到支付宝服务器后,服务器会先验证请求是否来自一个合法的session,并且该session的用户已经成功登录。攻击者在支付宝也有账户xxx,他直到上文中的URL可以进行转账操作,于是他自己可以发送一个请求 http://zhifubao.com/withdraw?account=lyq&amount=10000&for=xxx 到支付宝后台。但是这个请求是来自攻击者而不是我wl,所以不能通过安全认证,因此该请求作废。这时,攻击者xxx想到了用CSRF的方式,他自己做了个网站,在网站中放了如下代码:http://zhifubao.com/withdraw?account=lyq&amount=10000&for=xxx ,并且通过网站链接诱使我来访问他的网站。当我禁不住诱惑时就会点了进去,上述请求就会从我自己的浏览器发送到支付宝,而且这个请求会附带我的浏览器中的cookie。大多数情况下,该请求会失败,因为支付宝要求我的认证信息,但是我如果刚访问支付宝不久,还没有关闭支付宝页面,我的浏览器中的cookie存有我的认证信息,这个请求就会得到响应,从我的账户中转10000元到xxx账户里,而我丝毫不知情。

进入settings.py找到  MIDDLEWARE  这个列表找到    "Django.middleware.csrf.CsrfViewMiddleware",  这个字段

这一行设置csrf的如果把它注释掉csrf将失效

 

现在我在djanGo写了一个html表单当我点击提交的时候会变为提交方式会变为POST然后就会发现报了一个  403 的csrf错误

这是因为django的防护功能    因没有提供Referer值而被误认为CSRF攻击,拒绝访问 怎么解决这个问题呢?

 

 

可以在fORM表单下面加上    {%csrf_token%}     当你检查的时候就会发现多了一个input数据 这是  {%csrf_token%}  自动转化的数据提供浏览器进行确认

如果成功就可以正常访问错误则拒绝访问

然后你就会发现跳转页面的时候访问成功了

 

 

--结束END--

本文标题: python Djanjo csrf说明与配置

本文链接: https://www.lsjlt.com/news/2339.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python Djanjo csrf说明与配置
     Django csrf  CSRF 全称(Cross Site Request Forgery)跨站请求伪造。也被称为One Click Attack和Session Riding,通常缩写为CSRF或XSRF。你可以这样理解:攻击者(黑...
    99+
    2015-01-30
    python Djanjo csrf说明与配置
  • Persistence.xml 配置说明
    persistence.xml是Java Persistence API(JPA)中用于配置持久化单元(Persistence Un...
    99+
    2023-09-15
    说明
  • pglogical 2.2.0配置说明
    master: postgresql 9.5(192.168.31.205)standby: postgresql 10.3(192.168.31.202) 1.postgresql配置 1).vi pos...
    99+
    2022-10-18
  • Nginx动静分离配置实现与说明
    一、概述 1.1 动态页面与静态页面区别 静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源。动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变。 1.2 ...
    99+
    2022-11-13
  • redis参数配置说明
    redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no2. 当Redis以守护进程方式运行时,Redis默认...
    99+
    2022-10-18
  • 最新版Redis 2.6 的安装与配置说明
    Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(differe...
    99+
    2022-06-04
    最新版 Redis
  • linux下Redis 2.x 的安装与配置说明
    redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,...
    99+
    2022-06-04
    linux Redis
  • 云服务器配置说明
    云服务器是一种虚拟的数据存储设备,它提供了高性能、高可靠性和低成本的云计算支持。以下是云服务器配置和使用的详细说明:一、 CPU和内存配置云服务器CPU是云服务器计算系统中最关键的组件之一。CU通常由多块计算处理器组成,每个处理器都负责处理...
    99+
    2023-10-25
    服务器配置
  • Dactor的配置和API说明
    这篇文章主要讲解了“Dactor的配置和API说明”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Dactor的配置和API说明”吧!# **配置和API说明**  ## ...
    99+
    2023-06-02
  • mybatis-config详细配置说明
    <xml version="1.0" encoding="utf-8"> <!DOCTYPE configuration PUBLIC "...
    99+
    2022-10-18
  • Mysql配置my.cnf 参数说明
     ...
    99+
    2016-11-27
    Mysql配置my.cnf 参数说明
  • Python,内置方法说明
    abs()    取绝对值dict()    数据转成字典min()    从列表取最小值 >>> a = [1,4,5,-1,3] >>> min(a) -1 >>> max(a) 5...
    99+
    2023-01-31
    方法 Python
  • mysql8.0基本参数配置说明
    ## 注意: # ## (1)本配置假设物理服务器内存为 16G,总表数量在300之内,中小型企业业务 # ## (2)请根据实际情况作调整部分参数 # ## (3)本人不对这些建议结果负相应责任 ##服务端参数配置 [m...
    99+
    2023-09-11
    mysql 数据库 Powered by 金山文档
  • Postgres_XL 简要安装配置说明
    1.系统需求CentOS 7.2 X64postgres-xl-9.5r1.4.tar.gz# yum install -y gcc-c++# yum install -y readline-devel# ...
    99+
    2022-10-18
  • 4、redis.conf中replication配置项说明
    注意:在master-slave部署模式下,只需slave实例配置Peplication相关项,各项含义说明如下。        1) slaveof <mas...
    99+
    2022-10-18
  • Redis常用的配置和说明
    #是否作为守护进程运行,默认为nodaemonize yes#配置pid的存放路径及文件名,默认为当前路径下,此设置当守护进程运行时有效pidfile redis.pid#Redis默认监听端口port 6...
    99+
    2022-10-18
  • Redis配置文件参数说明
    Redis配置文件参数说明1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程    daemonize no2. 当Redis...
    99+
    2022-10-18
  • H3C AP配置流程及说明
      一、    具体步骤 根据AP的组网情况,保证AP设备本身的可管理性及安全性,需要对AP的名称、VLAN、SSID、接口等进行配置,具体内容如下: 1.登陆AP 【说明】 配置AP分为字符界面和图形界面两种,字符界面可以有Telnet和...
    99+
    2023-01-31
    流程 H3C AP
  • Oracle Exadata X8 Hardware DataSheet (配置说明)
     更多祥细信息请查看:https://docs.oracle.com/en/engineered-systems/exadata-database-machineOracle Exadata Database Machine co...
    99+
    2023-06-03
  • VNC安装配置详细说明
    VNC概述  VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的 AT&T的欧洲研究实验室开发的。VNC 是在基于 UNIX和 L...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作