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的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于 ...
随机推荐
- 在chrome上隐藏video的option按钮
隐藏方法: video::-webkit-media-controls{ overflow:hidden !important;}video::-webkit-media-controls-enclo ...
- $.ajax的标准写法
var baseurl = "http://" //后台的url $.ajax({ url:baseurl+"后台的接口", //请求的url ...
- 『高性能模型』HetConv: HeterogeneousKernel-BasedConvolutionsforDeepCNNs
论文地址:HetConv 一.现有网络加速技术 1.卷积加速技术 作者对已有的新型卷积划分如下:标准卷积.Depthwise 卷积.Pointwise 卷积.群卷积(相关介绍见『高性能模型』深度可分离 ...
- sentinel详解
https://segmentfault.com/a/1190000002680804 sentinel端口 port #工作路径 dir "/usr/local/redis-6380&qu ...
- 【Oracle】【9】阅读oracle执行计划
正文: 工具:PLSQL 1,配置执行计划需要显示的项 工具→首选项→窗口类型→计划窗口→根据需要配置要显示在执行计划中的列 2,打开执行计划 在SQL窗口执行完一条select语句后按 F5 即可查 ...
- git pull更新错误解决办法
Your local changes to the following files would be overwritten by mergeerror: Your local changes to ...
- 微信 + weui 框架记录
WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一: 包含button.cell.dialog. progress. to ...
- Tensorflow选择性初始化图中的变量
import tensorflow as tf def initialize_uninitialized(sess): global_vars = tf.global_variables() is_n ...
- 【C/C++】C++11 Lambda
Lambda C++11 中 lambda 是一个匿名函数对象 最简形式 []{ cout << "lambda" << endl; }(); // pri ...
- 八大排序算法详解(动图演示 思路分析 实例代码java 复杂度分析 适用场景)
一.分类 1.内部排序和外部排序 内部排序:待排序记录存放在计算机随机存储器中(说简单点,就是内存)进行的排序过程. 外部排序:待排序记录的数量很大,以致于内存不能一次容纳全部记录,所以在排序过程中需 ...