迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Flask 密钥

作者:迹忆客 最近更新:2023/03/27 浏览次数:

这篇文章是关于 Flask 中的密钥的。


在 Flask 和 Python 中使用不同的方式生成密钥

要访问会话 ID,需要使用分配给 SECRET_KEY 变量的加密密钥,所以当时我们将 SECRET_KEY 变量的值设置为字符串是非常危险的。该密钥需要随机生成。

为什么这么重要?好吧,如果客户端试图操作会话 ID 中的数据,我们希望它被服务器拒绝。

如果客户端能够以某种方式猜出密钥,那么他们就可以生成服务器不会拒绝的会话数据,你可能会猜到;这就是为什么这不是好的做法。

那么会话 ID 是干什么用的呢?好吧,它存储在 cookie 中,用于链接用户以指定服务器端的数据,例如数据库中有关用户的信息。

那么问题就变成了:我们如何生成真正的随机密钥?

让我们转到 Flask docs;如果我们向下滚动到它说明如何生成好的密钥的部分,根据文档,你的操作系统可以根据可用于获取此类密钥的随机密码生成器生成相当随机的东西。

在遵循文档的同时,我们打开一个 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()

当我们运行服务器时,我们可以看到工具栏工作正常,并且在控制台中没有出现错误。

使用 Flask 生成密钥

我们在模板中使用了此代码。

<html>
    <head>
        <body>
            <h2>Hi User, the secret key is necessary to run the debug toolbar</h2>
        </body>
    </head>
</html>

上一篇:Flask 调试模式

下一篇:Flask 请求表

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

Django 返回 JSON

发布时间:2023/05/04 浏览次数:106 分类:Python

在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。

在 Django 中创建对象

发布时间:2023/05/04 浏览次数:59 分类:Python

本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。

在 Django 中为多项选择创建字段

发布时间:2023/05/04 浏览次数:75 分类:Python

在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便