1. 背景 4
2. 编码安全 4
2.1. 输入验证 4
2.1.1. 概述 5
2.1.2. 白名单 5
2.1.3. 黑名单 5
2.1.4. 规范化 5
2.1.5. 净化 5
2.1.6. 合法性校验 6
2.1.7. 防范SQL注入 6
2.1.8. 文件校验 6
2.1.9. 访问控制 6
2.2. 输出验证 6
2.2.1. 概述 6
2.2.2. 编码场景 6
2.2.3. 净化场景 7
2.3. SQL注入 7
2.3.1. 概述 7
2.3.2. 参数化处理 7
2.3.3. 最小化授权 7
2.3.4. 敏感数据加密 7
2.3.5. 禁止错误回显 8
2.4. XSS跨站 8
2.4.1. 输入校验 8
2.4.2. 输出编码 8
2.5. XML注入 8
2.5.1. 输入校验 8
2.5.2. 输出编码 8
2.6. CSRF跨站请求伪造 8
2.6.1. Token使用 9
2.6.2. 二次验证 9
2.6.3. Referer验证 9
3. 逻辑安全 9
3.1. 身份验证 9
3.1.1. 概述 9
3.1.2. 提交凭证 9
3.1.3. 错误提示 9
3.1.4. 异常处理 10
3.1.5. 二次验证 10
3.1.6. 多因子验证 10
3.2. 短信验证 10
3.2.1. 验证码生成 10
3.2.2. 验证码限制 10
3.2.3. 安全提示 11
3.2.4. 凭证校验 11
3.3. 图灵测试 11
3.3.1. 验证码生成 11
3.3.2. 验证码使用 11
3.3.3. 验证码校验 11
3.4. 密码管理 12
3.4.1. 密码设置 12
3.4.2. 密码存储 12
3.4.3. 密码修改 12
3.4.4. 密码找回 12
3.4.5. 密码使用 12
3.5. 会话安全 13
3.5.1. 防止会话劫持 13
3.5.2. 会话标识符安全 13
3.5.3. Cookie安全设置 13
3.5.4. 防止CSRF攻击 13
3.5.5. 会话有效期 14
3.5.6. 会话注销 14
3.6. 访问控制 14
3.6.1. 跨权访问 14
3.6.2. 控制方法 14
3.6.3. 控制管理 14
3.6.4. 接口管理 15
3.6.5. 权限变更 15
3.7. 文件上传安全 15
3.7.1. 身份校验 15
3.7.2. 合法性校验 15
3.7.3. 存储环境设置 15
3.7.4. 隐藏文件路径 16
3.7.5. 文件访问设置 16
3.8. 接口安全 16
3.8.1. 网络限制 16
3.8.2. 身份认证 16
3.8.3. 完整性校验 16
3.8.4. 合法性校验 16
3.8.5. 可用性要求 17
3.8.6. 异常处理 17
4. 数据安全 17
4.1. 敏感信息 17
4.1.1. 敏感信息传输 17
4.1.2. 客户端保存 17
4.1.3. 服务端保存 17
4.1.4. 敏感信息维护 18
4.1.5. 敏感信息展示 18
4.2. 日志规范 18
4.2.1. 记录原则 18
4.2.2. 事件类型 18
4.2.3. 事件要求 18
4.2.4. 日志保护 19
4.3. 异常处理 19
4.3.1. 容错机制 19
4.3.2. 自定义错误信息 19
4.3.3. 隐藏用户信息 19
4.3.4. 隐藏系统信息 19
4.3.5. 异常状态恢复 20
4.3.6. 通信安全 20