1.为什么要用cookie?

http请求是无状态的。既每次打开一个网页(请求和回复)都是独立的.第二次打开网页不会记录第一次打开网页的信息.
如果没有cookie,我们就无法记录登录信息,那么用户每次访问网页都需要跳转到登录页面


2.实现一次登录多次访问

这个实验代码,直接打开/index会报错,因为没有cookie,只有登录了之后,设置cookie之后,才能免密登录。
在实际中,不能明文将密码登录保存在cookie中,要进行盐加密。而flask中默认的session就是通过这种方式保存的

from flask import Flask,render_template,request,redirect,session,Response
app = Flask(__name__)
app.debug = True@app.route('/login',methods=['GET','POST'],) # endpoint用于url_for
def login():if request.method == "GET": # 当get方法访问登录页面,返回登录页面return render_template('login.html')else: # 当post方法访问时,则进行判断登录验证user = request.form.get('user')  # 获得form中name="user"对应的值pwd = request.form.get('pwd')  # 获得form中name="pwd"对应的值if user == 'wang' and pwd == '123':  # 判断用户,用户信息可以放在数据库内res = redirect('/index')  # 重定向也是一个responseres.set_cookie('user',f'{user} {pwd}')return resreturn render_template('login.html',error='用户名或密码错误')  # 如果登录验证错误,则跳回本页面,并提示@app.route('/index',methods=['GET'])
def index():name = request.cookies.get('user')  # 获得cookieif not (name.split(" ")[0] == 'wang' and name.split(" ")[1] == '123'):return redirect('/login')return 'index'if __name__ == '__main__':app.run()

3.cookie的问题

虽然cookie可以解决无状态问题,但是在登录问题上,把用户和密码保存在用户电脑端,是很不安全的,如2中,客户端可以看到密码,解决方法有两种
1.对cookie的敏感信息进行加密
1.1 我们直接使用base64和md5加密即可,但是仍然解决不了破解问题
1.2 使用flask的session对象,session的原理也是将用户访问页面的信息,加密后放在客户端(具体是set-cookie的名字为’session’的key)
2.使用第三方包flask-session,将信息保存在数据库中

参考:
https://blog.csdn.net/feit2417/article/details/80735527

Flask cookie相关推荐

  1. Flask cookie、session与闪现

    02.Flask cookie.session与闪现 文章目录 02.Flask cookie.session与闪现 一.储备知识 1.什么是cookie? 注意点: 二.如何在flask中使用coo ...

  2. Flask cookie API(response.set_cookie,request.cookies)

    1.设置cookie cookie通过Response类来创建response对象,然后通过这个对象设置cookie class flask.Response(response=None, statu ...

  3. Flask——cookie的使用

    Flask的cookie设置有多种方式,以下简述基本的使用方法: 1.cookie的设置方法 (1)使用set_cookie() 方法进行设置: from flask import Flask,mak ...

  4. 闲聊flask web编程中的cookie

    在web编程中,cookie和session的区别于联系并不是一个很容易搞清楚的事情.在我从事后端工作的很长时间里,对于他们的应用也并不多,因为大多数时间都是在编写API接口供其他系统调用,而cook ...

  5. Flask 源代码阅读笔记

    我认为我已经养成了一个坏习惯.在使用一个框架过程中对它的内部原理非常感兴趣,有时候须要花不少精力才 明确,这也导致了学习的缓慢,但换来的是对框架的内部机理的熟悉,正如侯捷所说,源代码面前,了无秘密.这 ...

  6. flask身份验证_Flask基于令牌的身份验证

    flask身份验证 This tutorial takes a test-first approach to implementing token-based authentication in a ...

  7. Flask中的session伪造

    本文主要以buuctf中的一道题为例来讲解:[HCTF 2018]admin 看了一位师傅的操作,太强了,就来记一下笔记. Flask之session伪造 - FreeBuf网络安全行业门户 之前做这 ...

  8. flask session伪造

    通过CTF题目进行学习 首先打开题目,查看源代码发下如下注(提)释(示) 看到这个,有经验的大佬们估计可以猜到,八成这题就是要伪造admin登录 习惯性尝试一波弱口令, admin/admin adm ...

  9. Flask之session伪造

    前言 本文结合CTF中遇到的题目来说一下session伪造,虽然已经有很多师傅写了,而且写的都特别好,但是还是想自己记录一下,也方便以后复习.ciscn中就有一个session伪造的题,由于之前没有做 ...

最新文章

  1. phoneGap+jquery mobile项目经验
  2. 致力云安全服务模式 安全狗获近5000万融资
  3. html怎么设置图片倾斜度,CSS3-css如何使图片倾斜45度显示
  4. KMP算法--字符串模式匹配算法
  5. 同花顺怎么导出数据到excel_Excel怎么导出手机通讯录vCard文件
  6. Powercli的一些使用案例
  7. c# 正则获取html标签内容,c# – 使用正则表达式在多个HTML标记之间获取文本
  8. 【LeetCode笔记】剑指 Offer 21-. 调整数组顺序使奇数位于偶数前面(Java、双指针)
  9. c语言json映射,GitHub - xujun621/cson: 基于C语言的json数据映射解析库
  10. mac 二进制安装mysql_在mac下安装mysql二进制分发版的方法(不是dmg的)
  11. 光子 量子 DNA计算机的发展情况,CPU的发展与量子计算机.pdf
  12. 表上作业法-运输问题(Java)
  13. python单元测试用例_Python单元测试与测试用例简析
  14. Redis Lua脚本
  15. python图像边缘检测_Python进行图片水平边缘检测prewitt算子法
  16. win7 安装 python3.8.10
  17. 火灾自动报警系统学习心得
  18. Java8使用jdeps —— Java类依赖性分析器
  19. 【转】O'Reilly Java系列书籍建议阅读顺序(转自蔡学庸)
  20. 集合-HashTable

热门文章

  1. python控制台进度条_python在控制台输出进度条的方法
  2. freemarker 数组转字符串_TypeScript 实战算法系列(一):实现数组栈与对象栈
  3. 计算机管理员初级试题及答案,计算机管理员测试题及答案.doc
  4. php 去掉script,php怎么去除js
  5. cup first world_LOONCUP – The world's first SMART menstrual cup.
  6. 奖励名单表格模板_“我用一套表格,解决了孩子的拖延症,一路用到小学高年级!”...
  7. 70. 爬楼梯(JavaScript 完全背包)
  8. 力扣455. 分发饼干(JavaScript)
  9. golang 绘图库_golang入门-- 一个2D的图形库学习
  10. java类加载器分类_Java 类加载器的种类