一、背景
团队最近频繁遭受网络攻击,引起了部门技术负责人的重视,笔者在团队中相对来说更懂安全,因此花了点时间编辑了一份安全开发自检清单,觉得应该也有不少读者有需要,所以将其分享出来。
二、编码安全
2.1 输入验证
说明 | 检查项 |
---|---|
概述 | 任何来自客户端的数据,如URL和参数、HTTP头部、 Javascript戓其他嵌入代码提交的信息,都属于不可信数据。在应用外部边界或内部每个组件或功能边界,都将其当做潜在的恶意输入来校验 |
白名单 | 不可信数据可以设定白名单校验的,应接受所有和白名单匹配的数据,并阻止其他数据 |
黑名单 | 不可信数据中包含不良输入字符时,如空字节(%00)、换行符(%0d,%0a,\r, \n)、路径字符(…/ 或 …)等,建议直接阻止该数据,若需要接受该数据,则应做不同方式的净化处理 |
规范化 | 不可信数据的净化和校验前翯进行规范化,如将目录遍历(./或)等相对路径转化成绝对路径URL解码等。 |
净化 | 不可信数据需实施各种净化处理时,应彻底删除恶意字符,只留下 |