Django项目SECRET_KEY等敏感信息保存

2021年11月23日 阅读数:3
这篇文章主要向大家介绍Django项目SECRET_KEY等敏感信息保存,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

在咱们作完django项目后,向生产环境部署时,为了不一些敏感信息被有心人利用,咱们应该将其保护起来,好比说在settings配置中的一些密码等内容存在操做系统内,经过调用来使用,好比下面这种作法:python

拿Django中的SECRET_KEY来讲吧,其他如同数据库密码、邮箱密码等秘密内容均可以使用这种方式将其贮存在操做系统中。我使用的是python语言,这里要使用到python的os内置模块:linux

  • os模块:官方定义:This module provides a portable way of using operating system dependent functionality. (os模块提供了一种方便的方式让你去使用操做系统函数

具体到这个案例中咱们使用的是os.environ函数,用来获取系统变量shell

1 import os
2 
3 SECRET_KEY = os.environ["SECRET_KEY"]

而后在linux中的/etc/profile中写入SECRET_KEY变量的值:数据库

1 export SECRET_KEY="xxxxxxxx"
2 # 引号中的内容xxxxxxxx能够用Django原先自带的,也能够本身单独再另外生成。
3 -----------------------------------------------------------------
4 # 生成方式:
5 python manage.py shell
6 >>>from django.core.management.utils import get_random_secret_key
7 >>>get_random_secret_key()
8 'i!$!1s%4kzi%q(_^9b$i&!&apwu1!)l#=x99l2(6m=7+i(ajtm'

注:在向/etc/profile中写入数据,退出保存后必定要执行一下:source /etc/profile。做用是使改动生效,不然会报错】django

 


拓展一下:后端

Django中的SECRET_KEY是一个十分重要的参数,它的用途以下:cookie

 

The secret key is used for:session

 

一、它会被用到除了django.contrib.sessions.backends.cache或者get_session_auth_hash()之外的会话后端的全部会话中。less

二、它会被用到使用CookieStorage或者FallbackStorage下的全部信息中。dom

三、它会被用在全部的PasswordResetView令牌中。

四、除非提供了一个不一样的秘钥,它会被用于加密签名(cryptographic signing)的任何使用。