创建新项目后django-admin startproject
my settings.py
包含:
SECRET_KEY = 'django-insecure <actual secret key>'
我以前从未在密钥中见过“django-insecure”。这是什么意思?
为什么自动创建的密钥不安全?似乎比人类的关键思想安全得多。
它是使用众所周知的过程从熵源生成的,其质量和安全性无法得到保证(由 Django 提供)。这是表面上的原因;看https://docs.djangoproject.com/en/3.2/ref/checks/#security https://docs.djangoproject.com/en/3.2/ref/checks/#security
security.W009
: Your SECRET_KEY
少于 50 个字符,少于 5 个独特字符,或者它的前缀是'django-insecure-'
表明是Django自动生成的。请生成一个长且随机的SECRET_KEY
,否则 Django 的许多安全关键功能将容易受到攻击。
更重要的是,any嵌入设置文件中的密钥的安全性取决于文件系统的访问控制机制。 Django 设置文件是寻找密钥的明显位置。
将密钥保存在加密安全的密钥库或密钥库中会更安全。HSM https://en.wikipedia.org/wiki/Hardware_security_module,然后通过环境变量将其密钥传递给 Django;看在哪里存储密钥 DJANGO https://stackoverflow.com/questions/15209978.
而且,无论您如何管理它们,您都应该生成您的密钥yourself使用您控制的硬件和您可以 100% 信任的机制 + 熵源。 (如果您不知所措,请考虑掷一些骰子作为随机数字的来源。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)