zoukankan      html  css  js  c++  java
  • 018 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)的任何使用。

  • 相关阅读:
    Linux查看进程和已知端口是否启动
    plsql安装
    windows中用批处理文件删除n天前的文件
    阿里云服务器25邮件端口问题
    通过rpm安装crontab
    [RHEL7.1]关闭防火墙及SElinux
    有了 itchat, python 调用微信个人号从未如此简单(新增 py3 支持)
    Linux中tty、pty、pts的概念区别
    不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题
    Hadoop 2.7.3 安装配置及测试
  • 原文地址:https://www.cnblogs.com/abdm-989/p/11931097.html
Copyright © 2011-2022 走看看