安全护栏
SQL 注入防护
- 永远不要将用户输入直接拼接到 SQL 查询中。
- 始终使用参数化查询或 ORM 方法。
- 在数据库操作前验证和清理所有输入。
XSS 防护
- 在 HTML 中渲染前转义所有用户生成的内容。
- 使用模板自动转义功能。
- 在客户端和服务器端都进行输入验证和清理。
密钥管理
- 永远不要在源代码中硬编码密钥、API 密钥或密码。
- 使用环境变量或安全保险库存储敏感数据。
- 定期轮换密钥,避免在日志中记录它们。
输入验证
- 在系统边界处验证所有输入。
- 使用白名单而非黑名单进行验证。
- 在处理上传前检查文件类型和大小。
错误处理
- 不要在错误消息中暴露敏感信息。
- 在内部记录详细错误,向用户返回通用消息。
- 处理所有异常以防止信息泄露。
依赖管理
- 保持依赖项更新。
- 审计依赖项中的已知漏洞。
- 固定版本以避免意外的破坏性变更。