| 作者 |
| OWASP基金会 |
| 丛书名 |
| 新型网络安全人才培养丛书 |
| 出版社 |
| 电子工业出版社 |
| ISBN |
| 9787121352201 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书分为两大部分,共15章。*部分包含第1~4章,介绍了安全代码审查的作用和方法,以及在软件安全开发生命周期(S-SDLC)代码审查过程中查找安全漏洞的方法。第二部分包含第5~15章,介绍2013年版《OWASP Top 10》中提出的安全风险的处理方法和技术,以及其他漏洞处理的方法和技术。本书适合软件研发组织机构的高层管理人员、专业技术负责人、开发人员、测试人员和软件安全人员,以及高等院校软件工程、网络安全专业的师生等阅读学习。 |
| 目录 |
| 第1章 如何使用《应用软件安全代码审查指南》\t1 第2章 安全代码审查\t4 2.1 为什么代码有漏洞\t5 2.2 代码审查和安全代码审查之间的区别是什么\t6 2.3 什么是安全代码审查\t6 2.4 确定安全代码审查的范围\t7 2.5 我们不能破解自己的安全性\t9 2.6 安全代码审查和渗透测试耦合\t11 2.7 安全代码审查对开发实践的好处\t13 2.8 安全代码审查的技术\t15 2.9 安全代码审查与合规性\t15 第3章 安全代码审查的方法论\t18 3.1 制定安全代码审查流程时需要考虑的因素\t19 3.1.1 风险\t19 3.1.2 目的与背景\t19 3.1.3 代码行数\t19 3.1.4 编程语言\t20 3.1.5 资源、时间和期限\t20 3.2 在S-SDLC中集成安全代码审查\t20 3.3 何时进行安全代码审查\t21 3.4 敏捷和瀑布开发中的安全代码审查\t23 3.5 基于风险的安全代码审查方法\t23 3.6 安全代码审查准备\t26 3.7 安全代码审查发现和信息收集\t28 3.8 静态代码分析\t30 3.9 应用威胁建模\t34 3.10 度量指标和安全代码审查\t42 3.11 代码爬行\t45 第4章 安全代码审查注意事项\t47 第5章 A1注入攻击\t49 5.1 概述\t50 5.2 概览\t50 5.3 SQL盲注\t51 5.3.1 SQL查询参数化\t51 5.3.2 安全的字符串拼接\t52 5.3.3 运用灵活的参数化语句\t53 5.3.4 PHP SQL注入\t54 5.3.5 Java SQL注入\t55 5.3.6 .NET SQL注入\t55 5.3.7 参数集合\t56 5.4 要点回顾\t57 5.5 OWASP参考资料\t57 5.6 其他参考资料\t58 第6章 A2失效的身份认证和会话管理\t59 6.1 失效的身份认证\t60 6.1.1 概述\t60 6.1.2 概览\t60 6.1.3 如何审查\t60 6.1.4 参考资料\t62 6.1.5 被遗忘的密码\t62 6.1.6 验证码\t64 6.1.7 带外通信\t66 6.2 A2会话管理\t68 6.2.1 概述\t68 6.2.2 概览\t68 6.2.3 审查的内容\t69 6.2.4 会话超时\t70 6.2.5 会话注销和结束\t71 6.2.6 会话管理的服务器端防御\t72 第7章 A3跨站脚本攻击(XSS)\t74 7.1 什么是跨站脚本攻击(XSS)\t75 7.2 概览\t75 7.3 如何审查\t75 7.3.1 安全代码审查需要详尽\t75 7.3.2 工具介绍\t76 7.4 OWASP参考资料\t77 7.5 其他参考资料\t77 第8章 A4不安全的直接对象引用\t79 8.1 概述\t80 8.2 概览\t80 8.3 如何审查\t80 8.3.1 SQL注入\t80 8.3.2 HTTP POST请求\t81 8.3.3 间接引用映射\t81 8.3.4 数据绑定技术\t82 8.3.5 安全设计建议\t82 8.3.6 审查准则\t82 8.4 安全代码审查人员应该做什么\t82 8.5 MVC.NET中的绑定问题\t83 8.5.1 相应的视图(HTML)\t83 8.5.2 建议\t84 8.6 参考资料\t84 第9章 A5安全配置错误\t85 9.1 Apache Struts\t86 9.2 Java企业版声明配置\t87 9.3 JEE注释\t91 9.4 框架特定配置:Apache Tomcat\t92 9.5 框架特定配置:Jetty\t93 9.6 框架特定配置:JBoss AS\t94 9.7 框架特定配置:Oracle WebLogic\t94 9.8 程序配置:JEE\t95 9.9 Microsoft IIS\t97 9.10 框架特定配置:Microsoft II\t99 9.11 程序配置:Microsoft IIS\t102 9.12 进一步的IIS配置\t103 9.12.1 过滤请求和URL重写\t103 9.12.2 参考资料\t111 9.13 强名称\t111 9.13.1 如何使用强名称\t112 9.13.2 参考资料\t115 9.14 Round Tripping\t115 9.14.1 混淆的重要性\t116 9.14.2 使用混淆\t116 9.14.3 ASPNetCongs\t116 9.14.4 参考资料\t118 9.15 .NET验证控件\t118 第10章 A6敏感数据暴露\t124 10.1 加密控制\t125 10.1.1 概述\t125 10.1.2 审查内容:传输保护\t127 10.1.3 审查内容:存储保护\t129 10.1.4 加密、哈希和盐值\t135 10.1.5 参考资料\t138 10.2 减少攻击面\t139 10.2.1 概述\t139 10.2.2 审查内容\t140 10.2.3 参考资料\t141 第11章 A7功能级权限控制缺失\t142 11.1 授权\t143 11.2 概述\t144 11.3 注意事项\t146 11.4 访问控制备忘单\t148 11.4.1 硬编码方法\t148 11.4.2 防御访问控制攻击\t148 第12章 A8跨站请求伪造(CSRF)\t150 12.1 概述\t151 12.2 CSRF的工作原理\t152 12.3 注意事项\t153 12.3.1 无效的防御措施\t153 12.3.2 高风险功能\t154 12.3.3 防御CSRF攻击\t154 第13章 A9使用含有已知漏洞的组件\t159 13.1 概述\t160 13.2 注意事项\t160 第14章 A10未经验证的重定向和转发\t162 14.1 概述\t163 14.2 注意事项\t164 14.3 参考资料\t166 第15章 其他技术\t167 15.1 HTML5\t168 15.1.1 概述\t168 15.1.2 注意事项:Web信息传递\t168 15.1.3 注意事项:跨源资源共享\t169 15.1.4 注意事项:WebSockets\t170 15.1.5 注意事项:服务器推送事件\t172 15.2 同源策略\t172 15.2.1 概述\t172 15.2.2 注意事项\t173 15.3 审计日志代码\t174 15.3.1 概述\t174 15.3.2 注意事项\t175 15.3.3 参考资料\t176 15.4 错误处理\t177 15.4.1 概述\t177 15.4.2 注意事项\t178 15.4.3 注意事项:安全的失败\t180 15.4.4 注意事项:潜在漏洞代码\t180 15.4.5 注意事项:IIS错误处理\t183 15.4.6 注意事项:在Apache中处理错误\t185 15.4.7 注意事项:领先的实践错误处理\t186 15.4.8 注意事项:捕获异常的顺序\t187 15.4.9 注意事项:释放资源和良好的资源管理\t188 15.4.10 参考资料\t190 15.5 查看安全警报\t190 15.5.1 概述\t190 15.5.2 注意事项\t192 15.6 检查主动防御\t193 15.6.1 概述\t193 15.6.2 注意事项\t194 15.6.3 参考资料\t196 15.7 竞争条件\t196 15.7.1 概述\t196 15.7.2 注意事项\t197 15.7.3 参考资料\t198 15.8 缓冲区溢出\t198 15.8.1 概述\t198 15.8.2 注意事项:缓冲区溢出\t200 15.8.3 注意事项:格式函数溢出\t201 15.8.4 注意事项:整数溢出\t202 15.8.5 参考资料\t204 附录A 软件安全开发生命周期图表\t205 附录B 安全代码审查清单\t210 附录C 威胁建模示例\t214 C.1 威胁建模示例步骤1:分解应用\t214 C.2 威胁建模示例步骤2:威胁分类\t219 C.3 威胁建模示例步骤3:确定对策\t221 附录D 代码爬虫\t224 D.1 在.NET中搜索代码\t224 D.2 在Java中搜索代码\t230 D.3 在经典ASP中搜索代码\t234 D.4 在JavaScript和Ajax中搜索代码\t236 D.5 在C 和Apache中搜索代码\t236 附录E 参考资料\t239 |