Web安全开发指南--异常错误处理与日志审计
1、异常错误处理与日志审计
5.1、日志审计系统安全规则
1 | 日志系统能够记录特定事件的执行结果(比如 成功或失败)。 |
确保日志系统包含如下重要日志信息: 1、 日志发生的时间; 2、 事件的严重等级; 3、 能够标识该事件为安全事件的标签; 4、 导致事件产生的对象; 5、 导致事件产生的IP地址; 6、 事件的结果(成功或失败); 7、 关于事件的描述。 | |
2 | 如果使用浏览器查看日志,确保先对日志数据进行净化。(item1、2请参考附录11.8) |
3 | 不要在日志中存储任何敏感数据,比如密码和session id。 |
4 | 使用日志分析工具对日志进行安全事件定期分析。 |
5 | 针对业务敏感事件进行记录,比如: 1、 输入数据验证失败; 2、 用户登录(成功或失败); 3、 访问控制验证失败; 4、 尝试使用无效的或者过期的session进行连接; 5、 所有产生的异常和错误事件; 6、 所有管理员级别的操作,比如创建、删除用户,修改系统配置等。 |
5.2、详细的错误信息
简要描述 | 详细的错误信息能够提供攻击者大量有用的信息。 | |
解决方案 | 要正确处理每一种异常; 不允许直接把异常错误信息返回给用户,配置所有错误和异常到定制页面; 已发布的产品不应包含产生debug信息的模块,如果有,保证debug功能只能通过服务器端配置文件内的选项来打开,不可通过程序自身的功能模块来打开; 如果使用的框架或开发语言包含结构化的处理机制,只应当优先使用,而处理函数错误返回值的方式次之; 如果使用判断函数错误返回值的方式处理异常,必须保证正确处理每一种错误的返回值。 | |
备注 |
|
注:若IE浏览器显示格式不正确,请使用chrome浏览器