前端图书店
人民邮电出版社官方微店
微信扫描二维码,访问我们的微信店铺

Web应用安全权威指南

63.20 79
运费: ¥0.00~40.00
商品图
商品缩略图

商品详情

书名:Web应用安全权威指南  
ISBN:9787115370471  
作者:[日]徳丸浩 著  
开本:16开  
版次:第版  
出版时间:2014-09  
 
内容提要:  
 
  《Web应用安全权威指南》系日本Web安全第一人德丸浩所创,是作者从业多年的经验总结。作者首先简要介绍了Web应用的安全隐患以及产生原因,然后详细介绍了Web安全的基础,如HTTP、会话管理、同源策略等。此外还重点介绍了Web应用的各种安全隐患,对其产生原理及对策进行了详尽的讲解。最后对如何提高Web网站的安全性和开发安全的Web应用所需要的管理进行了深入的探讨。《Web应用安全权威指南》可操作性强,读者可以通过下载已搭建的虚拟机环境亲自体验书中的各种安全隐患。   《Web应用安全权威指南》适合Web相关的开发人员特别是安全及测试人员阅读。  
 
作者介绍:  
 
<作者> 德丸 浩 2008年创立HASH咨询公司,任董事长。主要从事网络安全性的诊断与咨询工作,并在工作之余通过博客普及网络安全知识。兼任KYOCERA Communication Systems股份有限公司技术顾问、独立行政法人信息处理推进机构(IPA)兼职研究员。Twitter ID为@ockeghem。 <译者> 赵文 程序员,Ruby 语言爱好者。图灵电子书《关于 mruby 的一切》译者。 个人博客: http://zhaowen.me <译者> 刘斌 程序员,关注于后台开发,Java/Ruby爱好者。个人主页:http://liubin.org <审校> OWASP子明 OWASP北京区负责人,51CTO信息安全专家,微软的信息安全白皮书的译者。现为远江盛邦(北京)公司技术总监。  
 
编辑推荐:  
 
日本Web开发者人手一册的安全圣经,让你的Web安全应用无懈可击!不管黑帽子还是白帽子讲Web安全,熟知web前端黑客攻防才能保证信息安全,OWASP北京区负责人、51CTO信息安全专家作序推荐  
 
目录:  
 
目 录  
 
第1章 什么是Web应用的安全隐患 1  
1-1 安全隐患即“能用于作恶的Bug” 2  
1-2 为什么存在安全隐患会有问题 3  
  经济损失 3  
  法律要求 3  
  对用户造成不可逆的伤害 4  
  欺骗用户 4  
  被用于构建僵尸网络 4  
1-3 产生安全隐患的原因 6  
1-4 安全性Bug与安全性功能 7  
1-5 本书的结构 8  
 
第2章 搭建试验环境 9  
2-1 试验环境概要 10  
2-2 安装VMware Player 11  
  什么是VMware Player 11  
  下载VMware Player 11  
  安装VMware Player 12  
2-3 安装虚拟机及运行确认 14  
  虚拟机启动确认 14  
  虚拟机的使用方法 15  
  编辑hosts文件 16  
  使用ping确认连接 16  
  Apache与PHP的运行确认 17  
  设置并确认邮箱账号 17  
2-4 安装Fiddler 18  
  什么是Fiddler 18  
  安装Fiddler 18  
  Fiddler的运行确认及简单用法 18  
 参考:虚拟机的数据一览 19  
 参考:如果无法连接试验环境的POP3服务器 20  
 
第3章 Web安全基础:HTTP、会话管理、同源策略 21  
3-1 HTTP与会话管理 22  
 为什么要学习HTTP 22  
 最简单的HTTP 22  
  使用Fiddler观察HTTP消息 23  
  请求消息 24  
  响应消息 24  
  状态行 25  
  响应头信息 25  
  如果将HTTP比喻为对话 25  
 输入-确认-注册模式 26  
  POST方法 28  
  消息体 28  
  百分号编码 29  
  Referer 29  
  GET和POST的使用区别 29  
  hidden参数能够被更改 30  
  将hidden参数的更改比作对话 32  
  hidden参数的优点 32  
 无状态的HTTP认证 33  
  体验Basic认证 33  
  专栏 认证与授权 36  
 Cookie与会话管理 36  
  使用Cookie的会话管理 39  
  会话管理的拟人化解说 39  
  会话ID泄漏的原因 42  
  Cookie的属性 42  
  专栏 Cookie Monster Bug 44  
 总结 45  
3-2 被动攻击与同源策略 46  
 主动攻击与被动攻击 46  
  主动攻击 46  
  被动攻击 46  
  恶意利用正规网站进行的被动攻击 47  
  跨站被动攻击 48  
 浏览器如何防御被动攻击 48  
  沙盒 49  
  同源策略 49  
  应用程序安全隐患与被动攻击 52  
  专栏 第三方JavaScript 53  
 JavaScript以外的跨域访问 54  
  frame元素与iframe元素 54  
  专栏 X-FRAME-OPTIONS 54  
  img元素 54  
  script元素 54  
  CSS 55  
  form元素的action属性 55  
 总结 56  
 
第4章 Web应用的各种安全隐患 57  
4-1 Web应用的功能与安全隐患的对应关系 58  
 安全隐患产生于何处 58  
 注入型隐患 59  
 总结 60  
4-2 输入处理与安全性 61  
 什么是Web应用的输入处理 61  
 检验字符编码 62  
 转换字符编码 62  
 检验并转换字符编码的实例 62  
  专栏 字符编码的自动转换与安全性 64  
 输入校验 64  
  输入校验的目的 64  
  输入校验与安全性 65  
  二进制安全与空字节攻击 65  
  仅校验输入值并不是安全性策略 66  
  输入校验的依据是应用程序的规格 67  
  哪些参数需要校验 67  
  PHP的正则表达式库 67  
  使用正则表达式检验输入值的实例(1) 1~5个字符的字母数字 68  
  使用正则表达式检验输入值的实例(2) 住址栏 70  
  专栏 请注意mb_ereg中的\d与\w 70  
 范例 70  
  专栏 输入校验与框架 71  
 总结 72  
 参考:表示“非控制字符的字符”的正则表达式 73  
4-3 页面显示的相关问题 75  
4.3.1 跨站脚本(基础篇) 75  
 概要 75  
 攻击手段与影响 76  
  XSS窃取Cookie值 76  
  通过JavaScript攻击 79  
  篡改网页 80  
  反射型XSS与存储型XSS 82  
 安全隐患的产生原因 84  
  HTML转义的概要 84  
  元素内容的 XSS 85  
  没有用引号括起来的属性值的 XSS 85  
  用引号括起来的属性值的XSS 85  
 对策 86  
  XSS对策的基础 86  
  指定响应的字符编码 87  
  XSS的辅助性对策 88  
  对策总结 89  
 参考:使用Perl的对策示例 89  
  使用Perl进行HTML转义的方法 89  
  指定响应的字符编码 89  
4.3.2 跨站脚本(进阶篇) 90  
 href属性与src属性的XSS 91  
  生成URL时的对策. 92  
  校验链接网址 92  
 JavaScript的动态生成 92  
  事件绑定函数的XSS 92  
  script元素的XSS 94  
  JavaScript字符串字面量动态生成的对策 95  
 DOM based XSS 97  
 允许HTML标签或CSS时的对策 99  
 参考:Perl中转义Unicode的函数 99  
4.3.3 错误消息导致的信息泄漏 100  
 总结 100  
 继续深入学习 100  
4-4 SQL调用相关的安全隐患 101  
4.4.1 SQL注入 101  
 概要 101  
 攻击手段与影响 102  
  示例脚本解说 102  
  错误消息导致的信息泄漏 103  
  UNION SELECT致使的信息泄漏 104  
  使用SQL注入绕过认证 104  
  通过SQL注入攻击篡改数据 106  
  其他攻击 107  
  专栏 数据库中表名与列名的调查方法 108  
 安全隐患的产生原因 109  
  字符串字面量的问题 109  
  针对数值的SQL注入攻击 110  
 对策 110  
  使用占位符拼接SQL语句 111  
  专栏 采用MDB2的原因 111  
  为什么使用占位符会安全 111  
  参考:LIKE语句与通配符 113  
  使用占位符的各种处理 114  
  SQL注入的辅助性对策 116  
 总结 117  
 继续深入学习 117  
 参考:无法使用占位符时的对策 117  
 参考:Perl+MySQL的安全连接方法 118  
 参考:PHP+PDO+MySQL的安全连接方法 118  
 参考:Java+MySQL的安全连接方法 118  
4-5 关键处理中引入的安全隐患 120  
4.5.1 跨站请求伪造(CSRF) 120  
 概要 120  
 攻击手段与影响 121  
  “输入-执行”模式的CSRF攻击 121  
  CSRF攻击与XSS攻击 124  
  存在确认页面时的CSRF攻击 125  
  专栏 针对内部网络的CSRF攻击 127  
 安全隐患的产生原因 128  
 对策 129  
  筛选出需要防范CSRF攻击的页面 129  
  确认是正规用户自愿发送的请求 130  
  专栏 令牌与一次性令牌 131  
  CSRF的辅助性对策 133  
  对策总结 133  
4-6 不完善的会话管理 134  
4.6.1 会话劫持的原因及影响 134  
  预测会话ID 134  
  窃取会话ID 134  
  挟持会话ID 135  
  会话劫持的方法总结 135  
  会话劫持的影响 135  
4.6.2 会话 ID可预测 136  
 概要 136  
 攻击手段与影响 136  
  常见的会话ID生成方法 136  
  使用推测出的会话ID尝试伪装 137  
  伪装造成的影响 137  
 安全隐患的产生原因 137  
 对策 138  
  改善PHP的会话ID的随机性的方法 138  
 参考:自制会话管理机制产生的其他隐患 139  
4.6.3 会话ID嵌入URL 139  
 概要 139  
 攻击手段与影响 140  
  会话ID嵌入URL所需的条件 140  
  范例脚本解说 141  
  通过Referer泄漏会话ID所需的条件 142  
  攻击流程 142  
  事故性的会话ID泄漏 143  
  影响 144  
 安全隐患的产生原因 144  
 对策 144  
  PHP 144  
  Java Servlet(J2EE) 145  
  ASP.NET 145  
4.6.4 固定会话ID 145  
 概要 145  
 攻击手段与影响 146  
  示例脚本介绍 146  
  会话固定攻击解说 148  
  登录前的会话固定攻击 148  
  会话采纳 151  
  仅在Cookie中保存会话ID的网站固定会话ID 151  
  会话固定攻击的影响 151  
 安全隐患的产生原因 152  
 对策 152  
  无法更改会话ID时采用令牌 153  
  登录前的会话固定攻击的对策 154  
 总结 154  
4-7 重定向相关的安全隐患 155  
4.7.1 自由重定向漏洞 155  
 概要 155  
 攻击手段与影响 156  
 安全隐患的产生原因 159  
  允许自由重定向的情况 159  
 对策 160  
  固定重定向的目标URL 160  
  使用编号指定重定向的目标URL 160  
  校验重定向的目标域名 160  
  专栏 警告页面 162  
4.7.2 HTTP消息头注入 162  
 概要 162  
 攻击手段与影响 163  
  重定向至外部域名 165  
  专栏 HTTP响应截断攻击 166  
  生成任意Cookie 166  
  显示伪造页面 168  
 安全隐患的产生原因 170  
  专栏 HTTP消息头与换行 171  
 对策 171  
  对策1:不将外界参数作为HTTP响应消息头输出 171  
  对策2:执行以下两项内容 171  
  专栏 PHP的header函数中进行的换行符校验 173  
4.7.3 重定向相关的安全隐患总结 173  
4-8 Cookie输出相关的安全隐患 174  
4.8.1 Cookie的用途不当 174  
  不该保存在Cookie中的数据 174  
  参考:最好不要在Cookie中保存数据的原因 174  
  专栏 Padding Oracle攻击与MS10-070 176  
4.8.2 Cookie的安全属性设置不完善 176  
 概要 176  
 攻击手段与影响 177  
  关于抓包方法的注意点 180  
 安全隐患的产生原因 181  
  什么样的应用程序不能在Cookie中设置安全属性 181  
 对策 181  
  给保存会话ID的Cookie设置安全属性的方法 182  
  使用令牌的对策 182  
  使用令牌能确保安全性的原因 184  
 除安全属性外其他属性值需要注意的地方 184  
  Domain属性 184  
  Path属性 185  
  Expires属性 185  
  HttpOnly属性 185  
 总结 185  
4-9 发送邮件的问题 186  
4.9.1 发送邮件的问题概要 186  
  邮件头注入漏洞 186  
  使用hidden参数保存收件人信息 186  
  参考:邮件服务器的开放转发 187  
4.9.2 邮件头注入漏洞 187  
 概要 187  
 攻击手段与影响 188  
  攻击方式1:添加收件人 190  
  攻击方式2:篡改正文 191  
  通过邮件头注入攻击添加附件 192  
 安全隐患的产生原因 193  
 对策 194  
  使用专门的程序库来发送邮件 194  
  不将外界传入的参数包含在邮件头中 194  
  发送邮件时确保外界传入的参数中不包含换行符 195  
  邮件头注入的辅助性对策 195  
 总结 196  
 继续深入学习 196  
4-10 文件处理相关的问题 197  
4.10.1 目录遍历漏洞 197  
 概要 197  
 攻击手段与影响 198  
  专栏 从脚本源码开始的一连串的信息泄漏 200  
 安全隐患的产生原因 200  
 对策 201  
  避免由外界指定文件名 201  
  文件名中不允许包含目录名 201  
  专栏 basename函数与空字节 202  
  限定文件名中仅包含字母和数字 202  
 总结 203  
4.10.2 内部文件被公开 203  
 概要 203  
 攻击手段与影响 203  
 安全隐患的产生原因 204  
 对策 205  
 参考:Apache中隐藏特定文件的方法 205  
4-11 调用OS命令引起的安全隐患 206  
4.11.1 OS命令注入 206  
 概要 206  
 攻击手段与影响 207  
  调用sendmail命令发送邮件 207  
  OS命令注入攻击与影响 209  
 安全隐患的产生原因 210  
  在Shell中执行多条命令 210  
  使用了内部调用Shell的函数 211  
  安全隐患的产生原因总结 212  
 对策 212  
  在设计阶段决定对策方针 213  
  选择不调用OS命令的实现方法 213  
  避免使用内部调用Shell的函数 213  
  不将外界输入的字符串传递给命令行参数 216  
  使用安全的函数对传递给OS命令的参数进行转义 216  
  OS命令注入攻击的辅助性对策 217  
 参考:内部调用Shell的函数 218  
4-12 文件上传相关的问题 219  
4.12.1 文件上传问题的概要 219  
 针对上传功能的DoS攻击 219  
  专栏 内存使用量与CPU使用时间等其他需要关注的资源 220  
 使上传的文件在服务器上作为脚本执行 220  
 诱使用户下载恶意文件 221  
 越权下载文件 222  
4.12.2 通过上传文件使服务器执行脚本 222  
 概要 222  
 攻击手段与影响 223  
  示例脚本解说 223  
  专栏 警惕文件名中的XSS 224  
  PHP脚本的上传与执行 224  
 安全隐患的产生原因 225  
 对策 225  
 专栏 校验扩展名时的注意点 228  
4.12.3 文件下载引起的跨站脚本 228  
 概要 228  
 攻击手段与影响 229  
  图像文件引起的XSS 229  
  PDF下载引起的XSS 231  
 安全隐患的产生原因 234  
  内容为图像时 234  
  内容不为图像时 235  
 对策 236  
  文件上传时的对策 236  
  专栏 BMP格式的注意点与MS07-057 238  
  文件下载时的对策 238  
  其他对策 239  
  专栏 将图像托管在其他域名 240  
 参考:用户PC中没有安装对应的应用程序时 240  
 总结 241  
4-13 include相关的问题 242  
4.13.1 文件包含攻击 242  
 概要 242  
 攻击手段与影响 243  
  文件包含引发的信息泄漏 244  
  执行脚本1:远程文件包含攻击(RFI) 244  
  专栏 RFI攻击的变种 245  
  执行脚本2:恶意使用保存会话信息的文件 246  
 安全隐患的产生原因 248  
 对策 248  
 总结 248  
4-14 eval相关的问题 249  
4.14.1 eval注入 249  
 概要 249  
 攻击手段与影响 250  
  存在漏洞的应用 250  
  攻击手段 252  
 安全隐患的产生原因 253  
 对策 253  
  不使用eval 253  
  避免eval的参数中包含外界传入的参数 254  
  限制外界传入eval的参数中只包含字母和数字 254  
  参考:Perl的eval代码块形式 254  
 总结 255  
 继续深入学习 255  
4-15 共享资源相关的问题 256  
4.15.1 竞态条件漏洞 256  
 概要 256  
 攻击手段与影响 257  
 安全隐患的产生原因 258  
 对策 259  
  避免使用共享资源 259  
  使用互斥锁 259  
 总结 260  
 参考:Java Servlet的其他注意点 260  
 
第5章 典型安全功能 261  
5-1 认证 262  
5.1.1 登录功能 262  
 针对登录功能的攻击 262  
  通过SQL注入攻击来跳过登录功能 262  
  通过SQL注入攻击获取用户密码 263  
  在登录页面进行暴力破解 263  
  通过社会化攻击得到用户密码 263  
  通过钓鱼方法获取密码 264  
 登录功能被破解后的影响 264  
 如何防止非法登录 264  
  确保系统中不存在SQL注入等安全性Bug 264  
  设置难以猜测的密码 265  
  密码的字符种类和长度要求 265  
  密码的使用现状 266  
  应用程序设计中关于密码的需求 266  
  严格的密码检查原则 267  
5.1.2 针对暴力破解攻击的对策 268  
 初步认识账号锁定 268  
 暴力破解攻击的检测和对策 268  
  字典攻击 269  
  Joe账号检索 269  
  逆向暴力破解 269  
  针对变种暴力破解的对策 269  
5.1.3 密码保存方法 271  
 保护密码的必要性 271  
 利用加密方式进行密码保护及其注意事项 271  
  专栏 数据库加密和密码保护 272  
 利用信息摘要来进行密码保护及其注意事项 272  
  什么是信息摘要 272  
  专栏 密码学级别的散列函数需要满足的要求 273  
  利用信息摘要保护密码 273  
  威胁1:离线暴力破解 274  
  威胁2:彩虹破解(Rainbow Crack) 275  
  威胁3:在用户数据库里创建密码字典 276  
  如何防止散列值被破解 277  
  对策1:salt(加盐) 277  
  对策2:stretching(延展计算) 278  
  实现示例 278  
  专栏 密码泄露途径 280  
5.1.4 自动登录 280  
 危险的实现方式示例 281  
 安全的自动登录实现方式 281  
  延长会话有效期 282  
  使用令牌实现自动登录 283  
  基于认证票的自动登录方式 286  
  三种方法的比较 286  
 如何降低自动登录带来的风险 286  
5.1.5 登录表单 286  
  专栏 密码确实需要掩码显示吗 287  
5.1.6 如何显示错误消息 288  
5.1.7 退出登录功能 289  
5.1.8 认证功能总结 290  
 参考:彩虹表原理 290  
5-2 账号管理 293  
5.2.1 用户注册 293  
 邮箱地址确认 293  
 防止用户ID重复 295  
  例子1:ID相同密码不同可以注册的网站 295  
  例子2:用户ID没有添加唯一性约束的网站 295  
 应对自动用户注册 296  
  利用CAPTCHA防止自动注册 296  
5.2.2 修改密码 297  
 确认当前密码 297  
 修改密码后向用户发送邮件通知 298  
 密码修改功能容易发生的漏洞 298  
5.2.3 修改邮箱地址 298  
 修改邮箱地址功能要考虑的安全对策 299  
5.2.4 密码找回 299  
 面向管理员的密码找回功能 300  
 面向用户的密码找回功能 300  
  对用户进行身份确认 301  
  如何发送密码通知 301  
5.2.5 账号冻结 302  
5.2.6 账号删除 303  
5.2.7 账号管理总结 303  
5-3 授权 304  
5.3.1 什么是授权 304  
5.3.2 典型的授权漏洞 304  
 更改资源ID后可以查看没有权限查看的信息 304  
 只控制菜单的显示或不显示 305  
 使用hidden参数或者Cookie保存权限信息 306  
 授权漏洞总结 307  
  专栏 将私密信息嵌入URL进行授权处理 307  
5.3.3 授权管理的需求设计 307  
  专栏 什么是角色 308  
5.3.4 如何正确实现授权管理 308  
5.3.5 总结 309  
5-4 日志输出 310  
5.4.1 日志输出的目的 310  
5.4.2 日志种类 310  
 错误日志 311  
 访问日志 311  
 调试日志 311  
5.4.3 有关日志输出的需求 311  
 需要记录到日志里的所有事件 312  
 日志里应包括的信息和格式 312  
 日志文件保护 312  
 日志文件保存位置 313  
 日志文件保存期限 313  
 服务器的时间调整 313  
5.4.4 实现日志输出 313  
5.4.5 总结 314  
 
第6章 字符编码和安全 315  
6-1 字符编码和安全概要 316  
6-2 字符集 317  
  什么是字符集 317  
  ASCII和ISO-8859-1 317  
  JIS规定的字符集 318  
  微软标准字符集 318  
  Unicode 319  
  GB2312 319  
  GBK 319  
  GB18030 320  
  不同字符相同编码的问题 320  
  字符集的处理引起的漏洞 320  
6-3 字符编码方式 321  
  什么是编码方式 321  
  Shift_JIS 321  
  EUC-JP 325  
  ISO-2022-JP 326  
  UTF-16 326  
  UTF-8 327  
  GB2312 329  
  GBK 330  
  GB18030 331  
6-4 由字符编码引起的漏洞总结 332  
  字符编码方式中非法数据导致的漏洞 332  
  对字符编码方式处理存在纰漏导致的漏洞 332  
  在不同字符集间变换导致的漏洞 332  
6-5 如何正确处理字符编码 333  
  在应用内统一使用的字符集 333  
  输入非法数据时报错并终止处理 335  
  处理数据时使用正确的编码方式 335  
  专栏 调用htmlspecialchars函数时必须指定字符编码方式 336  
  输出时设置正确的字符编码方式 336  
  其他对策:尽量避免编码自动检测 337  
6-6 总结 338  
 
第7章 如何提高Web网站的安全性 339  
7-1 针对Web服务器的攻击途径和防范措施 341  
7.1.1 利用基础软件漏洞进行攻击 341  
7.1.2 非法登录 341  
7.1.3 对策 341  
 停止运行不需要的软件 342  
 定期实施漏洞防范措施 342  
  选定软件时确认软件的升级状况 342  
  确定打补丁方式 343  
  关注各种漏洞相关信息 344  
  确认漏洞后调查补丁状况以及防范对策、并制定对应计划 344  
  执行漏洞对应计划 345  
 对不需要对外公开的端口或服务加以访问限制 346  
  通过端口扫描确认各端口服务状态 347  
 提高认证强度 348  
7-2 防范伪装攻击的对策 349  
7.2.1 网络伪装的手段 349  
 针对DNS服务器的攻击 349  
  专栏 VISA域名问题 350  
 ARP欺骗攻击 350  
7.2.2 钓鱼攻击 350  
7.2.3 Web网站的伪装攻击对策 351  
 网络层的对策 351  
  同一网段内不放置可能存在漏洞的服务器 351  
  强化DNS运维 351  
 引入SSL/TLS 352  
  专栏 免费的数字证书 354  
 使用便于记忆的域名 354  
7-3 防范网络监听、篡改的对策 355  
7.3.1 网络监听、篡改的途径 355  
  通过无线网进行监听、篡改 355  
  利用交换机端口镜像 355  
  利用代理服务器 355  
  伪装成DHCP服务器 355  
  使用ARP欺骗攻击和DNS缓存污染攻击(DNS cache poisoning) 355  
7.3.2 中间人攻击 356  
 使用Fiddler模拟中间人攻击 356  
  专栏 请不要手动安装证书 358  
7.3.3 对策 359  
 使用SSL时的注意事项 359  
  专栏 SSL认证标签 360  
7-4 防范恶意软件的对策 361  
7.4.1 什么是Web网站的恶意软件对策 361  
7.4.2 恶意软件的感染途径 361  
7.4.3 Web网站恶意软件防范对策概要 362  
7.4.4 如何确保服务器不被恶意软件感染 363  
 探讨是否需要制定针对恶意软件的防范措施 363  
 制定病毒防范政策并向用户公开 363  
 使用防病毒软件 364  
  专栏 Web网站的防病毒对策和Gumblar的关系 365  
7-5 总结 366  
 
第8章 开发安全的Web应用所需要的管理 367  
8-1 开发管理中的安全对策概要 368  
8-2 开发体制 369  
  开发标准的制定 369  
  教育培训 369  
8-3 开发过程 371  
8.3.1 规划阶段的注意事项 371  
8.3.2 招标时的注意事项 371  
  专栏 谁应该对安全漏洞负责 372  
8.3.3 需求分析时的注意事项 372  
8.3.4 概要设计的推进方法 373  
8.3.5 详细设计和编码阶段的注意事项 374  
8.3.6 安全性测试的重要性及其方法 374  
8.3.7 Web健康诊断基准 374  
8.3.8 承包方测试 376  
8.3.9 发包方测试(验收) 376  
8.3.10 运维阶段的注意事项 377  
8-4 总结 378  
 
在线试读:  
 
 

  第1章
  什么是 Web应用的 安全隐患
  本章将对“安全隐患”这一贯穿全书的主题加以概述,包 括什么是安全隐患,安全隐患会带来哪些问题,安全隐患 是如何产生的,等等。本章最后会给出全书的结构和学习方法。
  1.1 安全隐患即“能用于作恶的Bug”
  程序Bug对于开发者来说如同家常便饭。应用程序有了Bug,就会出现各种不正常的现象。例如,显示出错误的结果、需要进行的处理迟迟不能结束、网页布局错乱、响应速度极为缓慢等。而这其中,有一种Bug能被恶意利用。此类Bug被称为安全隐患(Vulnerability),有时也被称为安全性Bug。
  以下是一些恶意利用的常见案例。
  未经许可浏览用户个人信息等隐私信息
  篡改网站的内容
  使网页浏览者的计算机感染病毒
  伪装成他人来窥探用户的隐私信息、发布文章、在线购物、肆意转账等
  使目标网站不能被访问
  在网络游戏中让自己达到无敌状态,或非法获得游戏中的装备道具
  在确认自己的个人信息时,能看到别人的个人信息A
  如同程序员对一般的Bug(无奈地)习以为常一样,Web应用程序开发者对安全隐患也同样已经司空见惯。倘若开发Web应用程序时对安全隐患一无所知,就会开发出能被用来进行上述恶举的网站。针对这一问题,本书将从原理到具体对策,来详细讲述如何在开发Web应用时杜绝安全隐患。
  A  能看到其他用户个人信息的Bug虽不是故意作恶,但由此而偶然造成的不良后果也被视为安全隐患。
  1.2 为什么存在安全隐患会有问题
  为什么存在安全隐患会有问题,这是个越思考就越深入的课题。接下来,就让我们从几个方面来探讨一下必须杜绝安全隐患的原因。
  ◆经济损失
  应杜绝安全隐患的原因之一为,假如网站的安全隐患被恶意利用,网站的经营者将会蒙受经济损失。典型的损失为以下几项。
  赔偿用户的经济损失
  给用户寄送代金券作为补偿时的花销
  网站暂停运营造成的机会损失
  信誉度下降造成的营业额减少
  此类经济损失的总额有时会高达数十亿日元。
  然而,或许有人会有这样的疑问。如果网站的营销规模并不大,上述列举的各项经济损失就会变得相对较小。所以可能有些网站运营方就会采取这种思路:事前不做相应对策,万一出事了就赔偿用户的损失。A
  但是,实际的损失并不仅限于经济损失。
  ◆法律要求B
  《个人信息保护法》是规定网站实施安全性措施的法律。该法第20条规定,拥有超过5000名用户的网站运营方,作为个人信息经营者,有义务实施网站的安全管理措施。
  (安全管理措施)
  第二十条 个人信息经营者,为了安全管理其用户的个人信息,必须采取必要且恰当的措施,防止用户的个人信息被泄漏、删除或损坏。
  安全管理措施的具体内容,由各省厅分别制定规章。其中,“经济产业领域关于个人信息保护法的指导方针”中,“技术性安全管理措施”中的“‘个人数据访问控制’的实践方法示例”一节中有如下记载。
  A  这种策略被称为“风险自留”。
  B  本节阐述的是日本的相关法律,供中国读者参考。遗憾的是,截至译稿时(2013年9月),中国在网络安全隐患方面还没有推出相应的法律法规。 ——译者注
  检验处理个人信息的系统中引入的访问控制功能的有效性。
  (例如,检验网络应用是否存在安全隐患。)
  也就是说,通过Web系统管理个人信息的运营者受到《个人信息保护法》以及相关规章的约束,承担着对Web应用的安全隐患采取安全管理措施的法律义务。
  ◆对用户造成不可逆的伤害
  应该意识到,安全隐患造成的事故会给用户带来很多不可逆的伤害。个人信息一旦泄漏,就不可能再回收。账号被盗而导致用户的名誉受损之后,就再也回不到以前的状态了。另外,如果用户的信用卡账号被泄漏,即使赔偿了用户的金钱损失,也不可能完全平抚用户受到的恐慌、不安等精神上的痛苦。换言之,一旦发生了安全事故,就会出现很多金钱无法解决的问题。
  ……

查看全部  

前端图书店
人民邮电出版社官方微店
扫描二维码,访问我们的微信店铺

Web应用安全权威指南

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

扫一扫购买

打开微信,扫一扫

或搜索微信号:

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏