flask 密钥
这篇文章是关于 flask 中的密钥的。
在 flask 和 python 中使用不同的方式生成密钥
要访问会话 id,需要使用分配给 secret_key
变量的加密密钥,所以当时我们将 secret_key
变量的值设置为字符串是非常危险的。该密钥需要随机生成。
为什么这么重要?好吧,如果客户端试图操作会话 id 中的数据,我们希望它被服务器拒绝。
如果客户端能够以某种方式猜出密钥,那么他们就可以生成服务器不会拒绝的会话数据,你可能会猜到;这就是为什么这不是好的做法。
那么会话 id 是干什么用的呢?好吧,它存储在 cookie 中,用于链接用户以指定服务器端的数据,例如数据库中有关用户的信息。
那么问题就变成了:我们如何生成真正的随机密钥?
让我们转到 flask ;如果我们向下滚动到它说明如何生成好的密钥的部分,根据文档,你的操作系统可以根据可用于获取此类密钥的随机密码生成器生成相当随机的东西。
在遵循文档的同时,我们打开一个 python shell 并导入 os
模块,然后使用 urandom()
函数并在该函数中传递 24,以便你可以生成一个带有属性大小的链接的随机字符串我们通过了。
import os
os.urandom(24)
当我们点击 enter 或打印它时,我们得到这个键。
b'o\xe8\xc3vs\xf3\xf8\x0c\x80y\xad\xb6\x86\xb3\x7f\xee\x98l\x80\xe47\xfb]}'
此密钥不适用于你的 flask 应用程序,因此你必须从系统生成它。生成密钥后,获取该字符串,返回 flask 应用程序并将其分配给 secret_key
变量。
有几种方法可以获得密钥,我们将研究另一种生成十六进制密钥的方法。要生成此密钥,我们需要导入 uuid
模块,并从 uuid4()
函数中使用 hex
属性。
import uuid
uuid.uuid4().hex
输出:
'd5fb8c4fa8bd46638dadc4e751e0d68d'
在 flask 中,还有另一种方式是自己定义一个秘钥;要定义密钥,我们可以使用以下代码。
app.config['secret_key']='define_the_key'
在使用 flask 应用程序中的 debug
工具栏时,有必要定义一个密钥,因为如果在 flask 应用程序中定义我们的密钥,debugtoolbarextension
将无法工作。我们可以使用任何方法来定义密钥。
示例的完整源代码。
from flask import flask,render_template
from flask_debugtoolbar import debugtoolbarextension
# import os
# os.urandom(24)
# import uuid
# uuid.uuid4().hex
app = flask(__name__)
app.debug=true
# app.config['secret_key']='define_the_key'
hex_sec_key= 'd5fb8c4fa8bd46638dadc4e751e0d68d'
app.config['secret_key']=hex_sec_key
tbar=debugtoolbarextension(app)
@app.route('/', methods=['get'])
def deb_ex():
return render_template('index.html')
if __name__=='__main__':
app.run()
当我们运行服务器时,我们可以看到工具栏工作正常,并且在控制台中没有出现错误。
我们在模板中使用了此代码。
<html>
<head>
<body>
<h2>hi user, the secret key is necessary to run the debug toolbarh2>
body>
head>
html>
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串