一、CSRF-跨站伪造请求攻击
某些恶意网站上包含链接、表单按钮或者JavaScript,它们会利用登录过的用户在浏览器中的认证信息视图在你的网站上完成某些操作
这就是跨站请求伪造(CSRF,即Cross-Site Request Forgey)
 
 
二、CSRF流程:
第一步:用户c浏览并登录信任的站点A
第二步:A验证通过,在用户c浏览器产生A的cookie
第三步:用户c在没有退出站点A的情况下访问攻击网站B
第四步:B要求访问第三方的站点A,发出一个请求
第五步:用户浏览器根据B网站的请求,携带cookie访问站点A
第六步:A不知道5中的请求是用户c发出的,还是B发出的,由于浏览器会自动带上用户C的cookie,所以A会根据用户C的权限处理5的请求,这样B就达到了模拟用户登录的过程。
 
三、钓鱼网站掉银行接口骗钱案例
网站业务流程:
 
钓鱼网站搭建一个和银行一模一样的网站页面,你以为是银行的网站,当你访问钓鱼网站时
钓鱼网站向向银行发送请求:
 
 
四、如何防止csrf攻击
Django采用‘对比暗号’机制防范攻击
cookies中存储暗号1,模版中表单藏着暗号2,用户只有在本网站下提交数据,暗号2才会随表单提交给服务器
Django对比两个按钮,对比成功,则认为是合法请求,否则是违法请求-403响应码
 
五、CSRF防范配置步骤
1.settings.py中确认MIDDLEWARE(中间件)中 Django.middleware.csrf.CsrfViewMiddleware是否打开
2.模版中,form标签下添加 {% csrf_token%} 标签

示例

<form action="/user/login/" method="post" {% csrf_token %}>

    <p>用户名 :<input type="text" name="username"></p>
<p> 密码:<input type="text" name="password"></p>
<p><input type="submit" value="登录"></p> </form>
六、如果开启了csrf验证,局部不需要进行csrf保护
如果某个视图不需要Django进行csrf保护,可以使用装饰器关闭对此视图的检查
from django.views.decorators.csrf import  csrf_exempt

@csrf_exempt
def my_view(request):
pass
七、如果关闭了csrf验证,局部需要进行csrf保护
from django.views.decorators.csrf import csrf_protect

@csrf_protect
def my_view(request):
pass
 

22.-CSRF攻击的更多相关文章

  1. xss和csrf攻击

    xss(cross site scripting)是一种最常用的网站攻击方式. 一.Html的实体编码 举个栗子:用户在评论区输入评论信息,然后再评论区显示.大概是这个样子: <span> ...

  2. 【转】CSRF攻击的应对之道

    CSRF 背景与介绍CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一.其他安全隐患,比如 ...

  3. 切记ajax中要带上AntiForgeryToken防止CSRF攻击

    在程序项目中经常看到ajax post数据到服务器没有加上防伪标记,导致CSRF被攻击,下面小编通过本篇文章给大家介绍ajax中要带上AntiForgeryToken防止CSRF攻击,感兴趣的朋友一起 ...

  4. DVWA 黑客攻防演练(十四)CSRF 攻击 Cross Site Request Forgery

    这么多攻击中,CSRF 攻击,全称是 Cross Site Request Forgery,翻译过来是跨站请求伪造可谓是最防不胜防之一.比如删除一篇文章,添加一笔钱之类,如果开发者是没有考虑到会被 C ...

  5. Asp.net MVC 如何防止CSRF攻击

    什么是CSRF攻击? CSRF(Cross-site request forgery跨站请求伪造,也被称成为"one click attack"或者session riding,通 ...

  6. CSRF 攻击的应对之道 转载

    CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一.其他安全隐患,比如 ...

  7. day94:flask:Jinjia2模板引擎&flask中的CSRF攻击&Flask-SQLAlchemy的创建模型类和基本的增删改查

    目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在 ...

  8. XSS攻击&CSRF攻击 ----Django解决方案

    XSS攻击: XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执 ...

  9. 保护ASP.NET 应用免受 CSRF 攻击

    CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/ ...

随机推荐

  1. windows自动切换深色模式(夜晚模式)

    img { width: 30vw } windows系统上怎么根据日出日落时间判断切换为深色模式或浅色模式呢? windows系统自带了一个叫做"任务计划程序"的软件.可以通过& ...

  2. YC-Framework版本更新:V1.0.9

    分布式微服务框架:YC-Framework版本更新V1.0.9!!! 本文主要内容: 1.V1.0.9版本更新主要内容 2.YC-Framework新的征程 一.V1.0.9版本更新主要内容 (1)接 ...

  3. BI如何实现用户身份集成自定义安全程序开发

    统一身份认证是整个 IT 架构的最基本的组成部分,而账号则是实现统一身份认证的基础.做好账号的规划和设计直接决定着企业整个信息系统建设的便利与难易程度,决定着系统能否足够敏捷和快速赋能,也决定了在数字 ...

  4. 第五篇:vue.js起步

    <div id="vue_det"> //使改动全部在指定的 div 内,div 外部不受影响 <h1>site : {{site}}</h1> ...

  5. Shell第四章《正则表达式》

    一.前言 1.1.名词解释 正则表达式(regular expression, RE)是一种字符模式,用于在查找过程中匹配指定的字符.在大多数程序里,正则表达式都被置于两个正斜杠之间:例如/l[oO] ...

  6. 【FAQ】接入华为应用内支付服务常见问题解答

    HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.开发者的应用集成IAP SDK后,调用IAP SDK接口,启动IAP收银台,即 ...

  7. dp-背包模型

    一:01背包问题模型 1 题目: 有一个箱子容量为 V,同时有 n 个物品,每个物品有一个体积(正整数). 要求 n 个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输入格式 第一行是一个整数 ...

  8. HBase原理深入

    HBase 读写数据流程 Hbase 读数据流程 首先从 zk 找到 meta 表的 region 位置,然后读取 meta 表中的数据,meta 表中存储了用户表的 region 信息 根据要查询的 ...

  9. winform,xml读取与写入

    创建两个xml文件,一个 xml做为模板配置项,另一个做为临时接收数据. private static string localPath = System.Environment.CurrentDir ...

  10. Linkerd、Consul、Istio、Kuma、Traefik、AWS App服务网格全方位对比