部署Django到生产VPS前,运行Django内置安全检查:
python manage.py check --deploy
关键生产安全设置(settings/production.py):
SECRET_KEY = os.environ['DJANGO_SECRET_KEY'] # 从环境变量读取
DEBUG = False
SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_SECONDS = 31536000
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
X_FRAME_OPTIONS = 'DENY'
配置Django日志记录到文件:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'ERROR',
'class': 'logging.FileHandler',
'filename': '/var/log/django/error.log',
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'ERROR',
'propagate': True,
},
},
}
将Django部署在Anubiz Host冰岛VPS上,结合上述安全配置和隐私友好的法律环境,为Python Web应用提供了理想的生产运行环境。