安全防护
快速找到该分类下的问题答案
共找到 58 个问题
绝对不要将敏感信息硬编码在代码中或提交到版本控制系统。应使用环境变量管理。在项目根目录创建 `.env` 文件(列入 `.gitignore`),使用 `os.environ.get('SECRET_KEY')` 读取。或使用 `python-decouple`、`django-environ` 等库简化此过程。
安全防护
2026-04-11
通过使用 `django-csp` 配置 Content-Security-Policy。在 settings.py 或中间件中设置:`SECURE_BROWSER_XSS_FILTER = True`, `SECURE_CONTENT_TYPE_NOSNIFF = True`, `X_FRAME_OPTIONS = 'DENY'`(防点击劫持)。对于 HTTPS 站点,设置 `SECURE_HSTS_SECONDS` 等。
安全防护
2026-04-11
1. 使用 `django-axes` 或 `django-defender` 等应用,记录失败登录尝试,并在达到阈值后锁定 IP 或用户账户一段时间。2. 启用登录验证码(如 `django-simple-captcha`)。3. 实施双因素认证(2FA)。4. 记录所有登录日志以供审计。
安全防护
2026-04-11
在 settings.py 的 AUTH_PASSWORD_VALIDATORS 中配置密码验证器。Django 默认包含:检查密码与用户属性相似性、最小长度、常见密码列表、纯数字密码等验证。您还可以添加自定义验证器,要求密码包含大小写字母、数字和特殊字符,并设置密码过期时间。
安全防护
2026-04-11
1. **验证文件类型**:检查文件扩展名和 MIME 类型,使用类似 `python-magic` 的库。2. **限制文件大小**。3. **重命名文件**:不使用用户提供的文件名,使用生成的安全文件名。4. **设置正确权限**:确保上传目录不可执行。5. **存储位置**:考虑存储在非 Web 根目录,或通过视图授权访问。6. **病毒扫描**:集成杀毒软件。
安全防护
2026-04-11
Django 的 ORM(对象关系映射)通过使用参数化查询,从根本上防止了 SQL 注入。开发者应始终使用 ORM 提供的方法(如 `filter()`、`get()`)进行数据库查询,或使用 `cursor.execute(sql, [params])` 进行参数化原生查询,绝对避免使用字符串拼接来构造 SQL 语句。
安全防护
2026-04-11
1. **自动转义**:Django 模板默认对所有变量输出进行 HTML 转义。2. **慎用 safe**:仅在确认内容安全时使用 `|safe` 过滤器或 `mark_safe()` 函数。3. **输入验证**:在表单和序列化器中对用户输入进行严格校验。4. **CSP 头部**:配置 Content-Security-Policy HTTP 头,限制资源加载来源。
安全防护
2026-04-11
Django 内置了强大的 CSRF 保护。1. 在提交 POST、PUT、PATCH、DELETE 请求的表单中,必须包含 `{% csrf_token %}`。2. 相应的视图需要启用 `csrf_protect`(默认已通过中间件启用)。3. 对于 AJAX 请求,需要从 cookie 中读取 CSRF token 并设置在请求头 `X-CSRFToken` 中。
安全防护
2026-04-11
使用 django-security 或第三方安全扫描工具,定期检查依赖包的安全漏洞,更新安全补丁,进行渗透测试。
安全防护
2026-04-11
使用 Token 认证、JWT 认证或 OAuth2 认证,配置 HTTPS 加密传输,限制 API 调用频率,记录 API 访问日志。
安全防护
2026-04-11
在生产环境设置 DEBUG=False,配置 ALLOWED_HOSTS,过滤错误信息中的敏感数据。
安全防护
2026-04-11
验证文件类型、大小、扩展名,重命名上传文件,存储在非 Web 可访问目录,扫描病毒。
安全防护
2026-04-11
使用 django-axes 或 django-ratelimit 限制登录尝试频率,锁定频繁失败的 IP 或账户,添加验证码。
安全防护
2026-04-11
使用 Django 的密码验证器,要求最小长度、包含数字字母特殊字符、不与常见密码重复。
安全防护
2026-04-11
使用 django-csp 配置内容安全策略,设置 X-Content-Type-Options: nosniff,X-XSS-Protection: 1; mode=block 等。
安全防护
2026-04-11
使用 Django ORM 或参数化查询,避免直接拼接 SQL 语句,定期更新数据库和 ORM 的安全补丁。
安全防护
2026-04-11
设置 SESSION_COOKIE_HTTPONLY、SESSION_COOKIE_SECURE、SESSION_COOKIE_SAMESITE。
安全防护
2026-04-11
将 SECRET_KEY、数据库密码、API 密钥等存储在环境变量中,使用 .env 文件管理。
安全防护
2026-04-11
验证文件类型、大小,重命名上传文件,存储到非 Web 可访问目录,扫描病毒文件。
安全防护
2026-04-11
使用 Django 的密码验证器,要求最小长度、复杂度,定期提示用户修改密码。
安全防护
2026-04-11