Django項目SECRET_KEY等敏感信息保存


在我們做完django項目后,向生產環境部署時,為了避免一些敏感信息被有心人利用,我們應該將其保護起來,比如說在settings配置中的一些密碼等內容存在操作系統內,通過調用來使用,比如下面這種做法:

拿Django中的SECRET_KEY來說吧,其余如同數據庫密碼、郵箱密碼等秘密內容都可以使用這種方式將其貯存在操作系統中。我使用的是python語言,這里要使用到python的os內置模塊:

  • os模塊:官方定義:This module provides a portable way of using operating system dependent functionality. (os模塊提供了一種方便的方式讓你去使用操作系統函數

具體到這個案例中我們使用的是os.environ函數,用來獲取系統變量

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中的SECRET_KEY是一個十分重要的參數,它的用途如下:

 

The secret key is used for:

 

1、它會被用到除了django.contrib.sessions.backends.cache或者get_session_auth_hash()以外的會話后端的所有會話中。

2、它會被用到使用CookieStorage或者FallbackStorage下的所有信息中。

3、它會被用在所有的PasswordResetView令牌中。

4、除非提供了一個不同的秘鑰,它會被用於加密簽名(cryptographic signing)的任何使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM