实例介绍
【实例截图】
【核心代码】
目录
修订声明 PAGEREF _Toc394392174 \h 2
0 前言 PAGEREF _Toc394392175 \h 6
使用对象 PAGEREF _Toc394392177 \h 6
适用范围 PAGEREF _Toc394392178 \h 6
术语定义 PAGEREF _Toc394392179 \h 6
1 数据校验 PAGEREF _Toc394392180 \h 7
规则 1.1 校验跨信任边界传递的不可信数据 PAGEREF _Toc394392181 \h 7
规则 1.2 禁止直接使用不可信数据来拼接SQL语句 PAGEREF _Toc394392182 \h 8
规则 1.3 禁止直接使用不可信数据来拼接XML PAGEREF _Toc394392183 \h 12
规则 1.4 禁止直接使用不可信数据来记录日志 PAGEREF _Toc394392184 \h 15
规则 1.5 从格式化字符串中排除用户输入 PAGEREF _Toc394392185 \h 16
规则 1.6 禁止向Runtime.exec() 方法传递不可信、未净化的数据 PAGEREF _Toc394392186 \h 17
规则 1.7 验证路径之前应该先将其标准化 PAGEREF _Toc394392187 \h 18
规则 1.8 安全地从ZipInputStream提取文件 PAGEREF _Toc394392188 \h 20
2 异常行为 PAGEREF _Toc394392189 \h 23
规则 2.1 不要抑制或者忽略已检查异常 PAGEREF _Toc394392190 \h 23
规则 2.2 禁止在异常中泄露敏感信息 PAGEREF _Toc394392191 \h 25
规则 2.3 方法发生异常时要恢复到之前的对象状态 PAGEREF _Toc394392192 \h 28
3 I/O操作 PAGEREF _Toc394392193 \h 30
规则 3.1 临时文件使用完毕应及时删除 PAGEREF _Toc394392194 \h 30
规则 3.2 不要将Buffer对象封装的数据暴露给不可信代码 PAGEREF _Toc394392195 \h 32
规则 3.3 在多用户系统中创建文件时指定合适的访问许可 PAGEREF _Toc394392196 \h 34
规则 3.4 避免让外部进程阻塞在输入输出流上 PAGEREF _Toc394392197 \h 34
规则 3.5 避免在共享目录操作文件 PAGEREF _Toc394392198 \h 36
4 序列化和反序列化 PAGEREF _Toc394392199 \h 40
规则 4.1 将敏感对象发送出信任区域前进行签名并加密 PAGEREF _Toc394392200 \h 40
规则 4.2 禁止序列化未加密的敏感数据 PAGEREF _Toc394392201 \h 43
规则 4.3 防止序列化和反序列化被利用来绕过安全管理 PAGEREF _Toc394392202 \h 45
5 平台安全 PAGEREF _Toc394392203 \h 46
规则 5.1 使用安全管理器来保护敏感操作 PAGEREF _Toc394392204 \h 46
规则 5.2 防止特权区域内出现非法的数据 PAGEREF _Toc394392205 \h 47
规则 5.3 禁止基于不信任的数据源做安全检查 PAGEREF _Toc394392206 \h 49
规则 5.4 禁止特权块向非信任域泄漏敏感信息 PAGEREF _Toc394392207 \h 50
规则 5.5 编写自定义类加载器时应调用超类的getPermission()函数 PAGEREF _Toc394392208 \h 52
规则 5.6 避免完全依赖URLClassLoader和java.util.jar提供的默认自动签名认证机制 PAGEREF _Toc394392209 \h 53
6 运行环境 PAGEREF _Toc394392210 \h 55
规则 6.1 禁止给仅执行非特权操作的代码签名 PAGEREF _Toc394392211 \h 55
规范 6.2 不要使用危险的许可与目标组合 PAGEREF _Toc394392212 \h 55
规则 6.3 不要禁用字节码验证 PAGEREF _Toc394392213 \h 56
规则 6.4 禁止部署的应用可被远程监控 PAGEREF _Toc394392214 \h 56
规则 6.5 将所有安全敏感代码都放在一个jar包中,签名再加密 PAGEREF _Toc394392215 \h 57
规则 6.6 不要信任环境变量的值 PAGEREF _Toc394392216 \h 59
规则 6.6 生产代码不能包含任何调试入口点 PAGEREF _Toc394392217 \h 59
7 其他 PAGEREF _Toc394392218 \h 60
规则 7.1 禁止在日志中保存口令、密钥和其他敏感数据 PAGEREF _Toc394392219 \h 60
规则 7.2 禁止使用私有或者弱加密算法 PAGEREF _Toc394392220 \h 60
规则 7.3 基于哈希算法的口令安全存储必须加入盐值(salt) PAGEREF _Toc394392221 \h 60
规则 7.4 禁止将敏感信息硬编码在程序中 PAGEREF _Toc394392222 \h 61
规则 7.5 使用强随机数 PAGEREF _Toc394392223 \h 62
规则 7.6 防止将系统内部使用的锁对象暴露给不可信代码 PAGEREF _Toc394392224 \h 63
规则 7.7 使用SSLSocket代替Socket来进行安全数据交互 PAGEREF _Toc394392225 \h 64
规则 7.8 封装本地方法调用 PAGEREF _Toc394392226 \h 66
参考资料 PAGEREF _Toc394392227 \h 67
附录A PAGEREF _Toc394392228 \h 67
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论