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的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于 ...
随机推荐
- React文档(二十三)Web Components
React和web components是为了解决不同问题而创立的.web components为可重用组件提供了健壮的封装,而React提供了声明式的库来保持DOM和数据同步.这两点是互相补充的.作 ...
- input只能输入数字字母
<input type='text' onkeyup="this.value=this.value.replace(/[^0-9-]+/,'');" /> 只能输入数字 ...
- kindle完结书单
1.一个人的好天气---青山七惠 2.嫌疑人X的献身---东野圭吾 3.活着---余华 4.最漫长的旅行---Nicholas Sparks 5.解忧杂货店---东野圭吾 6.追风筝的人---卡勒德· ...
- centos 7安装myslq
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # rpm -ivh mysql-community- ...
- ORACLE相关函数使用总结
1. 2018年12月12日 12时12分 这种时间格式怎么转成2018-12-12 12:12 解决: select regexp_replace(regexp_replace('2009年6月 ...
- spring的配置与使用
spring的配置与使用 一.Spring介绍 1. 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由 RodJohnson 在其著 ...
- MSRHook与SSDTHook
//方式1:MSR Hook #include <ntifs.h> UINT32 oldaddr = ; UINT32 pidtoprotect = ; PCLIENT_ID pid = ...
- JavaScript Basic Memo
1.this 的指向 1).由 new 调用?绑定到新创建的对象. 2). 由 call 或者 apply(或者 bind)调用?绑定到指定的对象. 3). 由上下文对象调用?绑定到那个上下文对象. ...
- Java作业:第一次过程性考核 ——长春职业技术学院 16级网络工程
Java作业:第一次过程性考核 ••<结构化程序设计>•• 考核目标:初步了解Java基本语法规则,学习结构化程序设计思想. 码云链接:https://gitee.com/SoridoD/ ...
- 活代码LINQ——02
一.复习基础——属性与实例变量 'Fig. 4.8:GradeBookTest.vb 'Create and manipulate a GradeBook object. Module GradeBo ...