一、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. 【JAVA UI】HarmonyOS 如何使用TinyPinyin类库

    ​  参考资料 前言:TinyPinYin是一个适用于Java和Android.HarmonyOS的快速,低内存的汉字转拼音库.码云地址TinyPinYin,其使用方法已在API讲解中有详细介绍,本文 ...

  2. java-前端之HTML

    --html网页简单使用 1.html网页的基本标签 <!doctype html><!-- 声明网页版本 --> <html><!-- 唯一的跟元素 --& ...

  3. ACM模式细节

    牛客网的ACM模式需要自己写输入输出,在这里简单记录一下: 基本答题框架: import java.util.*; public class Main{ public static void main ...

  4. 微信小程序创建组件的流程,以及组件 properties 和 slot

    组件定义流程 1)为了方便管理组件文件,创建一个目录来存放组件(可省略该步骤) 组件与页面都有相同的配置,包括的文件有:wxml.wxss.js.json 四个文件. 2)编写组件 编写组件与编写页面 ...

  5. 面试突击77:Spring 依赖注入有几种?各有什么优缺点?

    IoC 和 DI 是 Spring 中最重要的两个概念,其中 IoC(Inversion of Control)为控制反转的思想,而 DI(Dependency Injection)依赖注入为其(Io ...

  6. Grafana Mimir:支持乱序的指标采集

    Grafana Mimir:支持乱序的指标采集 译自:New in Grafana Mimir: Introducing out-of-order sample ingestion 很早之前在使用th ...

  7. Java String Pool--String s = new String("a") 到底创建了几个对象?

    本篇重点(tips): 1. String Pool 是以Java 中 String 对象是不可变的这一特性为基础的 2. String Pool是Heap(堆)中的一块特殊空间(JDK 1.7 之前 ...

  8. MySQL8.0报错:Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation

    MySQL8.0.16版本中新增了一个system_user帐户类型,当新增用户并赋予权限时 mysql> create user 'proxysql'@'192.168.20.%' ident ...

  9. Beats:使用Elastic Stack对Redis监控

  10. Solutions:Elastic workplace 搜索:随时随地搜索所有内容 (一)