安全扫描Django项目解决存在敏感信息常见问题

1. 使用环境变量 这是最常用的方法之一。

你可以将所有的敏感信息设置为环境变量,并在Django的配置文件中读取这些环境变量。

设置环境变量(Linux/macOS)

bash 复制代码
export SECRET_KEY='your_secret_key'
export DB_NAME='your_db_name'
export DB_USER='your_db_user'
export DB_PASSWORD='your_db_password'

在Windows上: 可以通过控制面板或PowerShell设置环境变量。

Django配置文件中的使用:

bash 复制代码
import os

SECRET_KEY = os.getenv('SECRET_KEY', 'fallback_secret_key')
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.getenv('DB_NAME'),
        'USER': os.getenv('DB_USER'),
        'PASSWORD': os.getenv('DB_PASSWORD'),
        'HOST': 'localhost',
        'PORT': '',
    }
}

2. 使用 .env 文件与 python-decouple 或 django-environ

这是一种更结构化的方式,它允许你创建一个.env文件来保存所有敏感信息,然后通过Python包来读取它们。

bash 复制代码
pip install python-decouple
pip install django-environ

创建 .env 文件:

bash 复制代码
SECRET_KEY=your_secret_key
DEBUG=True
DB_NAME=your_db_name
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_HOST=localhost
DB_PORT=5432

配置 Django (使用 python-decouple):

bash 复制代码
from decouple import config

SECRET_KEY = config('SECRET_KEY')
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': config('DB_NAME'),
        'USER': config('DB_USER'),
        'PASSWORD': config('DB_PASSWORD'),
        'HOST': config('DB_HOST', default='localhost'),
        'PORT': config('DB_PORT', default=''),
    }
} 

对于django-environ,用法类似,但需要初始化环境对象。

成功:

相关推荐
chaofan98016 小时前
突破大模型落地瓶颈:Claude 4.7 与 GPT-5.5 长上下文工程实测
数据库·人工智能·python·gpt·自动化·php·api
2501_9012005316 小时前
PHP源码部署需要多大硬盘空间_PHP项目存储空间估算方法【方法】
jvm·数据库·python
豆瓣鸡17 小时前
Agent实战练习
java·python·学习
2401_8323655217 小时前
mysql如何优化mysql在多核CPU下的性能_调整线程并发数
jvm·数据库·python
m0_7364393017 小时前
JavaScript中显式创建包装对象的后果与性能损耗
jvm·数据库·python
四维迁跃17 小时前
JavaScript中Object-defineProperties批量设置属性
jvm·数据库·python
于先生吖17 小时前
家政派单小程序靠谱机构
python
Fleshy数模17 小时前
本地部署 Qwen2.5-1.5B-Instruct 全流程教程|Ollama + 魔搭双方案
python·语言模型·大模型·本地部署
2501_9012005317 小时前
CSS如何让响应式字体在断点处平滑切换_使用clamp函数计算
jvm·数据库·python
毕胜客源码17 小时前
卷积神经网络的手势识别系统(有技术文档)深度学习 图像识别 卷积神经网络 Django python 人工智能
人工智能·python·深度学习·cnn·django