Flask-状态保持-CSRF
问题:cookies基于浏览器的同源策略,不同域名的cookie不能相互访问,为什么可以进行跨站请求伪造呢?
原因:cookie基于浏览器的同源策略,确实是在实现状态保持的时候,不能跨域访问。
跨站请求的伪造过程:是其他网站伪造访问原网站的请求,导致的一系列信息泄露。
具体伪造过程:
如何防止CSRF的过程呢,还是需要通过一系列双向验证来保证:
在用户请求服务器的时候,服务器向cookie中写入csrf_token,浏览器的form表单中也会写入csrf_token,在浏览器进行下一次请求的时候,服务端会取到这两个token进行比对,一致就能验证是用户自己访问,不一致,就会存在伪造风险。
- 在客户端向后端请求界面数据的时候,后端会往响应中的 cookie 中设置 csrf_token 的值
- 在 Form 表单中添加一个隐藏的的字段,值也是 csrf_token
- 在用户点击提交的时候,会带上这两个值向后台发起请求
- 后端接受到请求,以会以下几件事件:
- 从 cookie中取出 csrf_token
- 从 表单数据中取出来隐藏的 csrf_token 的值
- 进行对比
- 如果比较之后两值一样,那么代表是正常的请求,如果没取到或者比较不一样,代表不是正常的请求,不执行下一步操作
Flask-状态保持-CSRF的更多相关文章
- day94:flask:Jinjia2模板引擎&flask中的CSRF攻击&Flask-SQLAlchemy的创建模型类和基本的增删改查
目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在 ...
- Flask模拟实现CSRF攻击
CSRF CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造. CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求. 包括:以你名义发送邮件,发消息,盗取你的账号 ...
- flask 状态保持session和上下文session的区别
问题场景: 在falsk项目中导入了两个session: 首先,配置文件config.py文件中 有个 flask_session扩展导入了Session ( from flask_sessi ...
- Flask模拟实现CSRF攻击的方法
https://www.jb51.net/article/144371.htm https://www.cnblogs.com/888888CN/p/9489345.html http://xiaor ...
- 在 Flask 项目中解决 CSRF 攻击
#转载请留言联系 1. CSRF是什么? CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造. CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求.包括:以你名义 ...
- python web框架Flask——csrf攻击
CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click ...
- Flask入门第二天
一.请求钩子 在客户端和服务器交互的过程中,有些准备工作或稍微工作是需要处理的,比如:在请求开始时,建立数据库连接:在请求开始时,根据需求进行权限校验:在请求结束时,指定数据的交互格式等.为了让每个视 ...
- 生产环境下Flask项目目录构建
接触Flask已经有大半年了,本篇博客主要来探讨如何规范化生产环境下Flask的项目目录结构.虽然目录结构见仁见智,个人有个人的看法和习惯,但总的来说,经过很多人的实践和总结,还是有很多共同的意见和想 ...
- python web框架Flask——后台登录
项目搭建 创建一个项目之后,需要在手动创建几个包(含有__init__.py文件的目录)和文件 1.在主目录下创建配置文件:config.py 2.在主目录下创建扩展文件:exts.py 3.在主目录 ...
- .NET Core 必备安全措施
.NET Core大大简化了.NET应用程序的开发.它的自动配置和启动依赖大大减少了开始一个应用所需的代码和配置量,本文目的是介绍如何创建更安全的.NET Core应用程序. 1.在生产中使用HTTP ...
随机推荐
- RPi 3B 无线连接配置
/********************************************************************** * RPi 3B 无线连接配置 * 说明: * 树莓派3 ...
- [转载] python必碰到的问题---encode与decode,中文乱码
阅读来源: 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicod ...
- linux简单快速启用web
================= jser.me/2013/11/22/快速启动web服务的两种方式.html Python的SimpleHTTPServer需要先安装python,然后执行 pyt ...
- HDU1272小希的迷宫–并查集
上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了 ...
- 02 JDBC相关
====================================================================================JDBC JAVA Databa ...
- ApplicationContext之getBean方法详解
转自:http://www.sohu.com/a/115194552_466964 我们知道可以通过ApplicationContext的getBean方法来获取Spring容器中已初始化的bean. ...
- ios 上浏览器返回上一页不会刷新页面问题,页面初始化的方法不执行
https://blog.csdn.net/yang450712123/article/details/79276102 https://blog.csdn.net/Chengbin_Huang/ar ...
- ansible-playbook入门实例解析
[root@localhost tlsit]# ansible-playbook a.yml PLAY [test] ***************************************** ...
- drone 0.8.8 集成gogs 进行ci/cd 处理
drone 是一个不错的基于容器的ci/cd 工具,运行简单,同时插件也挺多,基本常见的轻量级的任务都是可以搞定的 环境准备 使用docker in docker docker-compose 文件 ...
- x的奇幻之旅 (史蒂夫·斯托加茨 著)
第1部分 数字 第1章 数学:从企鹅的"鱼"订单到无穷大 (已看) 第2章 一组组石头与加减乘除运算 (已看) 第3章 "敌人的敌人就是朋友“与"负负得正&qu ...