更新时间:2020-05-06 15:59:14
封面
版权信息
内容提要
序
推荐语录
前言
名词解释
第1章 PHP项目安全概述
1.1 PHP项目安全形势不容乐观
1.2 PHP项目安全问题产生的原因
1.3 PHP项目安全原则
1.3.1 不可信原则
1.3.2 最小化原则
1.3.3 简单就是美
1.3.4 组件的安全
1.4 小结
第2章 PHP项目安全基础
2.1 信息屏蔽
2.1.1 屏蔽PHP错误信息
2.1.2 防止版本号暴露
2.2 防止全局变量覆盖
2.3 使用PHP的访问限制
2.3.1 文件系统限制
2.3.2 远程访问限制
2.3.3 开启安全模式
2.3.4 禁用危险函数
2.4 PHP中的Cookie安全
2.4.1 Cookie的HttpOnly
2.4.2 Cookie的Secure
2.4.3 指定Cookie的使用范围
2.5 PHP的安装与升级
2.5.1 尽量减少非必要模块加载
2.5.2 使用第三方安全扩展
2.6 小结
第3章 PHP编码安全
3.1 弱数据类型安全
3.1.1 Hash比较缺陷
3.1.2 bool比较缺陷
3.1.3 数字转换比较缺陷
3.1.4 switch比较缺陷
3.1.5 数组比较缺陷
3.2 PHP代码执行漏洞
3.2.1 代码执行的函数
3.2.2 代码执行防御
3.3 PHP变量安全
3.3.1 全局变量覆盖
3.3.2 动态变量覆盖
3.3.3 函数extract()变量覆盖
3.3.4 函数import_request_variables()变量覆盖
3.3.5 函数parse_str()变量覆盖
3.4 URL重定向安全
3.5 请求伪造攻击
3.5.1 服务器请求伪造
3.5.2 SSRF漏洞的危害
3.5.3 在PHP中容易引起SSRF的函数
3.5.4 容易造成SSRF的功能点
3.5.5 SSRF漏洞防御
3.6 文件上传安全
3.6.1 文件上传漏洞的危害
3.6.2 文件上传漏洞
3.6.3 检查文件类型防止上传漏洞
3.6.4 检查文件扩展名称防止上传漏洞
3.6.5 文件上传漏洞的综合防护
3.7 避免反序列化漏洞
3.8 小结
第4章 PHP项目中的常见漏洞与防护
4.1 SQL注入漏洞
4.1.1 什么是SQL注入
4.1.2 报错注入
4.1.3 普通注入
4.1.4 隐式类型注入
4.1.5 盲注
4.1.6 宽字节注入
4.1.7 二次解码注入
4.2 SQL注入漏洞防护
4.2.1 MySQL预编译处理
4.2.2 PHP使用MySQL的预编译处理
4.2.3 校验和过滤
4.2.4 宽字节注入防护
4.2.5 禁用魔术引号
4.3 XML注入漏洞防护
4.4 邮件安全
4.4.1 邮件注入
4.4.2 防止邮件注入
4.5 PHP组件漏洞防护
4.5.1 RSS安全漏洞
4.5.2 PHPMailer漏洞
4.5.3 OpenSSL漏洞
4.5.4 SSL v2.0协议漏洞
4.6 文件包含安全
4.6.1 文件包含漏洞
4.6.2 避免文件包含漏洞
4.7 系统命令注入
4.7.1 易发生命令注入的函数
4.7.2 防御命令注入
4.8 小结
第5章 PHP与客户端交互安全
5.1 浏览器跨域安全
5.1.1 浏览器同源策略
5.1.2 浏览器跨域资源共享