面向安全地编程
- 2025-04-17 19:42:00
- 丁国栋
- 原创 28
以下是一些安全编程的基本原则。
- 验证用户的输入,对才有输入的URL参数、表单、API请求、Cookie进行严格验证;
- 只允许输入已知的限定的合法字符;
- 对数字、日期、时间等格式进行校验;
- 对输入的长度进行限制;
- 遵循最小权限原则,做好访问控制;
- 采用限流阻止暴力破解和爬取;
- 敏感操作做二次验证或者延迟执行;
- 重要操作需要做安全验证和日志记录;
- 使用安全HTTP header,例如CSPs、X-Centent_Typ-Options、X-Frame-Options等;
- 避免将debug、堆栈跟踪或SQL等暴露在生产环境的报错中;
- 安全日志;
- 使用CSRF防护,防止表单恶意提交;
- 文件上传检查文件类型,并且存放到无法直接访问的目录;
- 使用静态分析SAST和动态测试DAST;
- 在Web开发中,应该避免在URL、请求体或响应中直接包含SQL语句,在URL和请求体中包含SQL会被安全防护设施(例如Web应用防火墙(WAF))认为SQL注入之类的不安全事件;
- 部署WAF对Web服务器进行保护;
- 隔离环境,分开开发、测试、生产环境;
- 定期加密备份数据,测试恢复流程;
- 及时修复漏洞;
发表评论