Csrf_token ||| CSRF跨站请求伪造
# 注: 部分内容参考网上,侵删
CSRF(Cross-site request forgery) 跨站请求伪造,是一种对网站的恶意利用 它会通过伪装成受信任用户的请求来利用受信任的网站来获取一些信息。
举个小栗子来解释原理(故事纯属虚构):
A用户在某个银行有一笔不小的存款,A用户可以通过该银行的网站来进行存款和提现等请求,当请求发送到网站后,服务器会先验证该请求是否来自一个合法的 session,并且保存。 当黑客B发现了该目标用户A之后,黑客B便在该银行网站注册账户。黑客B可以通过A用户的某个URL来进行转账。但是,该URL的请求来自黑客B但并非来自用户A,所以无法通过验证。 这时,黑客B便可以自己创建一个网站,该网站的部分请求中会有A用户的转账的URL,黑客B的网站里面有许多诱人的东西,来诱惑用户A来访问该网站。 如果用户A刚刚在该银行网站上进行过转账等操作,便被黑客B的网站诱惑到,以至于来访问该黑客网站,这个时候用户A的浏览器与银行网站之间的 session 尚未过期,浏览器的 cookie 之中含有 用户A 的认证信息。这时,悲剧发生了,这个 url 请求就会得到响应,钱将从 用户A 的账号转移到 黑客B的账号,而 用户A 当时毫不知情,还在很开心的访问着黑客B的黑网站。
CSRF攻击之所以能够成功,是因为黑客可以伪造用户的请求,请求的信息都是存在cookie或session中的。 要想抵御CSRF,关键在于在一些重要请求中放入一些黑客不能伪造的信息。
抵御CSRF有三种方法:
1.验证码
2.refer头
3.Token
我们便来说说第三中方法Csrf_token
Token就是一个令牌,他是一个随机的值,Token最大的特点就是随机性,不可预测
他可以在请求的时候随机产生一个令牌,并在服务器上建立一个拦截器来验证该令牌,如果两者不匹配或者没存在令牌,便会拒绝该请求。
注意当然不能写到cookie中,因为浏览器在发出恶意csrf请求时,是自动带着你的cookie的
运用的时候在form表单中需要加上 
并且在用的时候也需要获取一下该token

温馨提示:
在生活中,一定要注意网上的一些垃圾信息,和一些不健康网站。在我们刚刚在某网站转账完毕或者登陆完毕之后,就不要去访问内些垃圾网站,防止我们的信息被盗取。
Csrf_token ||| CSRF跨站请求伪造的更多相关文章
- python CSRF跨站请求伪造
python CSRF跨站请求伪造 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- Django之CSRF跨站请求伪造(老掉牙的钓鱼网站模拟)
首先这是一个测试的代码 请先在setting页面进行下面操作 注释完成后,开始模拟钓鱼网站的跨站请求伪造操作: 前端代码: <!DOCTYPE html> <html lang=&q ...
- ajax向Django前后端提交请求和CSRF跨站请求伪造
1.ajax登录示例 urls.py from django.conf.urls import url from django.contrib import admin from app01 impo ...
- python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)
一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...
- 第三百一十五节,Django框架,CSRF跨站请求伪造
第三百一十五节,Django框架,CSRF跨站请求伪造 全局CSRF 如果要启用防止CSRF跨站请求伪造,就需要在中间件开启CSRF #中间件 MIDDLEWARE = [ 'django.midd ...
- Django中的CSRF(跨站请求伪造)
Django中的CSRF(跨站请求伪造) Django CSRF 什么是CSFR 即跨站请求伪装,就是通常所说的钓鱼网站. 钓鱼网站的页面和正经网站的页面对浏览器来说有什么区别? (页面是怎么来的? ...
- Django框架 之 基于Ajax中csrf跨站请求伪造
Django框架 之 基于Ajax中csrf跨站请求伪造 ajax中csrf跨站请求伪造 方式一 1 2 3 $.ajaxSetup({ data: {csrfmiddlewaretoken: ...
- 十三 Django框架,CSRF跨站请求伪造
全局CSRF 如果要启用防止CSRF跨站请求伪造,就需要在中间件开启CSRF #中间件 MIDDLEWARE = [ 'django.middleware.security.SecurityMidd ...
- Web框架之Django_09 重要组件(Django中间件、csrf跨站请求伪造)
摘要 Django中间件 csrf跨站请求伪造 一.Django中间件: 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于 ...
随机推荐
- python操作mysql——mysql.connector
连接mysql, 需要mysql connector, conntector是一种驱动程序,python连接mysql的驱动程序,mysql官方给出的名称为connector/python, 可参考m ...
- .NET 控件的认识。
四单元的题目里面,涉及了很多之前没有用过的控件的使用,前12道题都不是很难,所以很快做完了 ,但是后面的因为timer控件找不到,有些操作无法实现,所以就没做,但是也是认真的看了的. 等什么时候把ti ...
- mac下idea搭建maven项目的一些问题总结
1.关于版本 目标原版与原发行版本不一致 <build> <finalName>comment</finalName> <plugins> <pl ...
- leetcode感想
想想要参加秋招了,重新开始刷leetcode,记录一下自己在过程遇到的问题. 算法优化: 1.合并if分支. 2.将所有可以直接给出结果的特殊情况放在最前面直接返回.
- JAVA 把小数分成整数和小数
在进行进制转换的时候,我们需要把小数分为整数和小数两部分. 这里介绍两种方法. 第一种举个例子:1.23分为1 和 0.23 第二种:1.23 分为 1 和23 有时需要具体情况具体分析自己需要哪种类 ...
- Vue.js学习过程
打开各大论坛,看到好多Vue.js的话题,可以说现在是非常火的框架,看到一个人这样评论Vue:“Vue.js兼容angular.js和 react.js的优点,并剔除他们的缺点.”因为现在公司不用Vu ...
- 第一章 Python基本语法
寒假不能荒废,终于静下心来认真地开始学习Python,在这里与大家分享一下所学知识,希望能对像我这样的小白有所帮助,如有错误之处,谢大佬不吝赐教!! 编程语言包括机器语言.汇编语言.高级语言.超 ...
- 电脑小白和ta的小白电脑——Tomcat服务器
配置web服务器tomcat,这里默认了已经配置JAVA开发环境↓ https://www.cnblogs.com/gifted35/p/9775112.html (一)下载tomcat 我安装的服务 ...
- ceph版本号
概述 第一个 Ceph 版本是 0.1 ,要回溯到 2008 年 1 月.多年来,版本号方案一直没变,直到 2015 年 4 月 0.94.1 ( Hammer 的第一个修正版)发布后,为了避免 0. ...
- R语言数值积分
前两天对学习了R里面计算的基本范围,以及一些求解方程的方法,今天来看看积分,其实上个学期学了数值分析,对这部分的算法是有所了解的,当时是用matlab写了一遍,已经忘了怎么实现的了,现在用R重新写一遍 ...