跨站请求伪造

跨站请求伪造(csrf)

牧云@^-^@ 提交于 2019-12-03 00:17:42
跨站请求伪造(csrf) 钓鱼网站 ​ 就类似于你搭建了一个跟银行一模一样的web页面 ​ 用户在你的网站转账的时候输入用户名 密码 对方账户 ​ 银行里面的钱确实少了 但是发现收款人变了 最简单的原理 你写的form表单中 用户的用户名 密码都会真实的提交给银行后台 但是收款人的账户却不是用户填的 你暴露给用户的是一个没有name属性的input框 你自己提前写好了一个隐藏的带有name和value的input框 真正的网站 前端 <h1>真正的网站</h1> <form action="" method="post"> <p>username:<input type="text" name="username"></p> <p>target_username:<input type="text" name="target_username"> </p> <p>money:<input type="text" name="money"></p> <input type="submit"> </form> 后端 def transfer(request):#转账 if request.method=="POST": username = request.POST.get('username') target_username = request.POST.get('target

跨站请求伪造(scrf)、设置scrf值、CBV加装饰器

ⅰ亾dé卋堺 提交于 2019-12-03 00:16:46
跨站请求伪造(scrf) 听说过钓鱼网站吗? 就类似于你搭建了一个跟银行一模一样的web页面 用户在你的网站转账的时候输入用户名 密码 对方账户 银行里面的钱确实少了 但是发现收款人变了 原理: 你写的form表单中 用户的用户名 密码都会真实的提交给银行后台 但是收款人的账户却不是用户填的 你暴露给用户的是一个没有name属性的input框 你自己提前写好了一个隐藏的带有name和value的input框 解决钓鱼网站的策略: 只要是用户想要提交post请求的页面 我在返回给用户的时候就提前设置好一个随机字符串 当用户提交post请求的时候 我会自动先取查找是否有该随机字符串 如果有 正常提交 如果没有 直接报403 所以!! 那个被我们注释掉的中间件,就是用来校验你有没有这个随机字符串的。 这就是django自带的东西,你可以理解为,这个中间件不允许的前端post请求,都不能通过这一层校验,要怎样让post请求成功呢,就要让他通过校验。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script> <link href=

Python-flask跨站请求伪造和跨站请求保护的实现

匿名 (未验证) 提交于 2019-12-02 22:56:40
Browse 是浏览器,WebServerA 是受信任网站/被攻击网站 A,WebServerB 是恶意网站/点击网站 B。 (1) A A。 (2) A A Cookie (3) A A。 (4) A TAB B。 (5) B (6) Cookie(包括 sessionId)信息,请求网站 A。这种请求有可能更新密码,添加用户什么的操作。 from.csrf_token, 在客户端的cookie中设置csrf_token 原文:https://www.cnblogs.com/liudemeng/p/9270720.html

中间件、csrf跨站请求伪造、Auth模块

☆樱花仙子☆ 提交于 2019-11-30 12:32:04
Django中间件 1、什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能 说的直白一点中间件是帮助我们 在视图函数执行之前和执行之后都可以做一些额外的操作 ,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。 我们一直都在使用中间件,只是没有注意到而已,打开Django项目的Settings.py文件,看到下图的MIDDLEWARE配置项。 默认的七个中间件: MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware

csrf跨站请求伪造攻击,

↘锁芯ラ 提交于 2019-11-27 18:47:26
-csrf:跨站请求伪造攻击 (额外还有xss,sql注入攻击) Forbidden(403)拒绝你访问 比如说自己写的一个html页面 ,它认为你是伪造出来的,不是网站下面的页面 是因为你没有做csrf的判断和验证 你看到的这条信息,因为这个网站是需要csrf的cookie,cookie为什么被需要,是因为安全的因素,被第三方黑客攻击 Django解决 在提交时候 正常的页面 <form action='/url/',method='post'> {% csrf_token%} from:<input type='text'> to :<input type='text'> 按钮 </form> 添加{% csrf_token %} 通过验证 随机的生成一个cookie 在settings -开启全局的csrf验证 1.settings 打开'django.middleware.csrf.CsrfViewMiddleware', 2.表单中开启csrf_token <form> {% csrf_token %} <input type='text'> </form> -开启局部的函数,不进行f验证 1.settings 打开'django.middleware.csrf.CsrfViewMiddleware', 2.在views.py 中: from django.views