簡體   English   中英

Django 中的動態 SECRET_KEY 缺點

[英]Dynamic SECRET_KEY in Django disadvantages

我剛開始學習 Django,我想知道使用隨機生成的 SECRET-KEY 會有什么缺點。 到目前為止,我已經開始使用此代碼...

from pathlib import Path import random, string

# Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/

# Randomized security key size = 100 SECRET_KEY = ''.join(random.choices(string.ascii_uppercase + string.ascii_lowercase
+ string.punctuation + string.hexdigits + string.digits, k = size))

目前,這似乎適用於我制作的一個簡單博客,但我想知道這在其他用途​​中可能有什么缺點,以及是否有更好的方法來確保密鑰安全。

提前致謝!

您確實應該使用隨機生成的密鑰,但它不應該在設置中動態生成,因為旋轉密鑰會使活動會話、消息和令牌無效。 從文檔

密鑰用於:

如果您輪換您的密鑰,以上所有內容都將失效。 密鑰不用於用戶的密碼,密鑰輪換不會影響他們。

注意:不要使用random.choices()生成密鑰,因為它不是加密安全的。 您可以為此使用secrets 模塊

import secrets
import string

choices = string.ascii_letters + string.digits + "<>()[]*?@!#~,.;"
key = "".join(secrets.choice(choices) for n in range(100))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM