第1章 什么是 Web应用的安全隐患
1-1 安全隐患即“能用于作恶的Bug”
1-2 为什么存在安全隐患会有问题
1-3 产生安全隐患的原因
1-4 安全性 Bug与安全性功能
1-5 本书的结构
第2章 搭建试验环境
2-1试验环境概要
2-2 安装 VMware Player
2-3 安装虚拟机及运行确认
2-4 安装 Fiddler
参考:虚拟机的数据一览
参考:如果无法连接试验环境的POP3服务器
第3章 Web 安全基础:HTTP、会话管理、同源策略
3-1 HTTP 与会话管理
3-2 被动攻击与同源策略
第4章 Web应用的各种安全隐患
4-1 Web 应用的功能与安全隐患的对应关系
4-2 输入处理与安全性
4-3 页面显示的相关问题
4.3.1 跨站脚本(基础篇)
4.3.2 跨站脚本(进阶篇)
4.3.3 错误消息导致的信息泄漏
4-4 SQL 调用相关的安全隐患
4.4.1 SQL 注入
4-5 关键处理中引入的安全隐患
4.5.1 跨站请求伪造(CSRF)
4-6 不完善的会话管理
4.6.1 会话劫持的原因及影响
4.6.2 会话 ID可预测
4.6.3 会话 ID嵌入URL
4.6.4 固定会话 ID
4-7 重定向相关的安全隐患
4.7.1 自由重定向漏洞
4.7.2 HTTP 消息头注入
4.7.3 重定向相关的安全隐患总结
4-8 Cookie 输出相关的安全隐患
4.8.1 Cookie 的用途不当
4.8.2 Cookie 的安全属性设置不完善
4-9 发送邮件的问题
4.9.1 发送邮件的问题概要
4.9.2 邮件头注入漏洞
4-10 文件处理相关的问题
4.10.1 目录遍历漏洞
4.10.2 内部文件被公开
4-11 调用 OS命令引起的安全隐患
4.11.1 OS 命令注入
4-12 文件上传相关的问题
4.12.1 文件上传问题的概要
4.12.2 通过上传文件使服务器执行脚本
4.12.3 文件下载引起的跨站脚本
4-13 include 相关的问题
4.13.1 文件包含攻击
4-14 eval 相关的问题
4.14.1 eval 注入
4-15 共享资源相关的问题
4.15.1 竞态条件漏洞
第5章 典型安全功能
5-1 认证
5.1.1 登录功能
5.1.2 针对暴力破解攻击的对策
5.1.3 密码保存方法
5.1.4 自动登录
5.1.5 登录表单
5.1.6 如何显示错误消息
5.1.7 退出登录功能
5.1.8 认证功能总结
5-2账号管理
5.2.1 用户注册
5.2.2 修改密码
5.2.3 修改邮箱地址
5.2.4 密码找回
5.2.5 账号冻结
5.2.6 账号删除
5.2.7 账号管理总结
5.3 授权
5.3.1 什么是授权
5.3.2 典型的授权漏洞
5.3.3 授权管理的需求设计
5.3.4 如何正确实现授权管理
5.3.5 总结
5.4 日志输出
5.4.1 日志输出的目的
5.4.2 日志种类
5.4.3 有关日志输出的需求
5.4.4 实现日志输出
5.4.5 总结
第6章 字符编码和安全
6-1 字符编码和安全概要
6-2 字符集
什么是字符集
ASCII 和ISO-8859-1
JIS 规定的字符集
微软标准字符集
Unicode
GB2312
GBK
GB18030
不同字符相同编码的问题
字符集的处理引起的漏洞
6-3 字符编码方式
什么是编码方式
Shift_JIS
EUC-JP
ISO-2022-JP
UTF-16
UTF-8
GB2312
GBK
GB18030
6-4 由字符编码引起的漏洞总结
字符编码方式中非法数据导致的漏洞
对字符编码方式处理存在纰漏导致的漏洞
在不同字符集间变换导致的漏洞
6-5 如何正确处理字符编码
在应用内统一使用的字符集
输入非法数据时报错并终止处理
处理数据时使用正确的编码方式
专栏 调用 htmlspecialchars函数时必须指定字符编码方式
输出时设置正确的字符编码方式
其他对策:尽量避免编码自动检测
6-6 总结
第7章 如何提高 Web网站的安全性
7-1 针对 Web服务器的攻击途径和防范措施
7.1.1 利用基础软件漏洞进行攻击
7.1.2 非法登录
7.1.3 对策
7-2 防范伪装攻击的对策
7.2.1 网络伪装的手段
7.2.2 钓鱼攻击
7.2.3 Web 网站的伪装攻击对策
7-3 防范网络监听、篡改的对策
7.3.1 网络监听、篡改的途径
7.3.2 中间人攻击
7.3.3 对策
7-4 防范恶意软件的对策
7.4.1 什么是 Web网站的恶意软件对策
7.4.2 恶意软件的感染途径
7.4.3 Web 网站恶意软件防范对策概要
7.4.4 如何确保服务器不被恶意软件感染
7-5 总结
第8章 开发安全的 Web应用所需要的管理
8-1 开发管理中的安全对策概要
8-2 开发体制
开发标准的制定
教育培训
8-3 开发过程
8.3.1 规划阶段的注意事项
8.3.2 招标时的注意事项
8.3.3 需求分析时的注意事项
8.3.4 概要设计的推进方法
8.3.5 详细设计和编码阶段的注意事项
8.3.6 安全性测试的重要性及其方法
8.3.7 Web 健康诊断基准
8.3.8 承包方测试
8.3.9 发包方测试(验收)
8.3.10 运维阶段的注意事项
8-4 总结