书籍详情

PHP安全之道:项目安全的架构、技术与实践

PHP安全之道:项目安全的架构、技术与实践

作者:栾涛 著

出版社:人民邮电出版社

出版时间:2019-11-01

ISBN:9787115515278

定价:¥79.00

购买这本书可以去
内容简介
  本书主要面向PHP 研发人员,详细讲解PHP 项目漏洞的产生原理及防范措施,帮助研发人员在项目研发过程中规避风险。全书共有10章。第1章讲述PHP项目安全问题的主要形成原因以及解决PHP项目安全问题的原则;第2章讲述PHP项目安全的基础,以使研发人员了解PHP语言自身的安全机制;第3章通过讲解PHP编码过程中需要注意的安全问题,帮助研发人员正确运用PHP函数及变量转换;第4章阐述常见的漏洞并给出了相应的处理方式,涉及SQL注入漏洞、XML注入漏洞、邮件安全、PHP组件安全、文件包含安全、系统命令注入等方面,帮助研发人员在项目初期即能有效防范漏洞问题;第5章讲述PHP与客户端交互过程中存在的安全隐患及解决方案,包括浏览器安全边界、客户端脚本攻击、伪造劫持等一系列和客户端相关的安全防护;第6章讲述在PHP项目中常用的加密方式及其应用场景;第7章讲述PHP项目安全的进阶知识,帮助研发人员在更高的角度防范风险;第8章从PHP业务逻辑安全的角度讲述每个业务场景的安全防范路径,以进一步提升研发人员在PHP项目实战中对安全问题的认识,并提高解决具体业务安全问题的能力;第9章讲述PHP的各种支撑软件的安全应用问题;第10章讲述如何建立有安全保障的企业研发体系。对于PHP项目的安全问题,本书不仅进行了系统性的阐释,给出了体系化的安全问题解决之道,还通过丰富的小示例帮助读者在平常工作中得以见微知著,并能防微杜渐,增强安全意识,提高安全警惕,不放过任何威胁到项目安全的“细枝末节”。因而,本书不仅适合PHP 研发人员,也适合网络安全技术人员参阅。
作者简介
  栾涛,信息安全专家、资深研发工程师、架构师,先后就职于奇虎360、滴滴出行,参与设计和研发了多种大型业务系统和大型信息安全系统,擅长大型微服务、信息安全、大数据等各类业务架构支撑与实施工作,在安全防护、监测、扫描等大型系统的设计与研发上有着丰富的实战经验。
目录
第 1章 PHP 项目安全概述01
1.1 PHP 项目安全形势不容乐观 01
1.2 PHP 项目安全问题产生的原因 03
1.3 PHP 项目安全原则 05
1.3.1 不可信原则 05
1.3.2 最小化原则 06
1.3.3 简单就是美 07
1.3.4 组件的安全 08
1.4 小结 09
第 2章 PHP 项目安全基础 10
2.1 信息屏蔽 10
2.1.1 屏蔽PHP 错误信息 10
2.1.2 防止版本号暴露 12
2.2 防止全局变量覆盖 15
2.3 使用PHP 的访问限制 16
2.3.1 文件系统限制 16
2.3.2 远程访问限制 17
2.3.3 开启安全模式 19
2.3.4 禁用危险函数 21
2.4 PHP 中的Cookie 安全 22
2.4.1 Cookie 的HttpOnly 23
2.4.2 Cookie 的Secure 23
2.4.3 指定Cookie 的使用范围 23
2.5 PHP 的安装与升级 24
2.5.1 尽量减少非必要模块加载 27
2.5.2 使用第三方安全扩展 27
2.6 小结 28
第3章 PHP 编码安全 29
3.1 弱数据类型安全 29
3.1.1 Hash 比较缺陷 30
3.1.2 bool 比较缺陷 32
3.1.3 数字转换比较缺陷 34
3.1.4 switch 比较缺陷 37
3.1.5 数组比较缺陷 38
3.2 PHP 代码执行漏洞 39
3.2.1 代码执行的函数 39
3.2.2 代码执行防御 43
3.3 PHP 变量安全 44
3.3.1 全局变量覆盖 44
3.3.2 动态变量覆盖 45
3.3.3 函数extract() 变量覆盖 47
3.3.4 函数import_request_variables() 变量覆盖 48
3.3.5 函数parse_str() 变量覆盖 49
3.4 URL 重定向安全 50
3.5 请求伪造攻击 52
3.5.1 服务器请求伪造 53
3.5.2 SSRF 漏洞的危害 53
3.5.3 在PHP 中容易引起SSRF 的函数 55
3.5.4 容易造成SSRF 的功能点 57
3.5.5 SSRF 漏洞防御 58
3.6 文件上传安全 62
3.6.1 文件上传漏洞的危害 62
3.6.2 文件上传漏洞 62
3.6.3 检查文件类型防止上传漏洞 64
3.6.4 检查文件扩展名称防止上传漏洞 66
3.6.5 文件上传漏洞的综合防护 67
3.7 避免反序列化漏洞 69
3.8 小结 71
第4章 PHP 项目中的常见漏洞与防护 72
4.1 SQL 注入漏洞 72
4.1.1 什么是SQL 注入 72
4.1.2 报错注入 74
4.1.3 普通注入 74
4.1.4 隐式类型注入 75
4.1.5 盲注 76
4.1.6 宽字节注入 77
4.1.7 二次解码注入 78
4.2 SQL 注入漏洞防护 79
4.2.1 MySQL 预编译处理 79
4.2.2 PHP 使用MySQL 的预编译处理 81
4.2.3 校验和过滤 83
4.2.4 宽字节注入防护 86
4.2.5 禁用魔术引号 87
4.3 XML 注入漏洞防护 87
4.4 邮件安全 87
4.4.1 邮件注入 88
4.4.2 防止邮件注入 89
4.5 PHP 组件漏洞防护 90
4.5.1 RSS 安全漏洞 90
4.5.2 PHPMailer 漏洞 91
4.5.3 OpenSSL 漏洞 92
4.5.4 SSL v2.0 协议漏洞 92
4.6 文件包含安全 93
4.6.1 文件包含漏洞 93
4.6.2 避免文件包含漏洞 97
4.7 系统命令注入 99
4.7.1 易发生命令注入的函数 99
4.7.2 防御命令注入 102
4.8 小结 103
第5章 PHP 与客户端交互安全 104
5.1 浏览器跨域安全 104
5.1.1 浏览器同源策略 104
5.1.2 浏览器跨域资源共享 106
5.1.3 JSONP 资源加载安全 108
5.2 XSS 漏洞防御 112
5.2.1 反射型XSS 113
5.2.2 存储型XSS 115
5.2.3 DOM 型XSS 116
5.2.4 通过编码过滤和转换进行防御 118
5.2.5 开启HttpOnly 防御XSS 122
5.2.6 对Cookie 进行IP 绑定 123
5.2.7 浏览器策略防御XSS 124
5.3 警惕浏览器绕过 126
5.4 跨站请求伪造防御 127
5.4.1 CSRF 请求过程 127
5.4.2 CSRF 防御方法 128
5.5 防止点击劫持 132
5.6 HTTP 响应拆分漏洞 133
5.7 会话攻击安全防御 136
5.7.1 会话泄露 136
5.7.2 会话劫持 138
5.7.3 会话固定 139
5.8 小结 140
第6章 PHP 与密码安全 141
6.1 用户密码安全 141
6.1.1 加密密码 141
6.1.2 密码加盐 142
6.1.3 定期修改 144
6.2 防止暴力破解 144
6.3 随机数安全 145
6.4 数字摘要 147
6.5 MAC 和HMAC 简介 148
6.6 对称加密 150
6.7 非对称加密 156
6.8 小结 157
第7章 PHP 项目安全进阶 158
7.1 单一入口 158
7.1.1 实现方式 158
7.1.2 单一入口更安全 159
7.2 项目部署安全 159
7.2.1 目录结构 160
7.2.2 目录权限 161
7.2.3 避免敏感配置硬编码 162
7.3 保障内容安全 163
7.3.1 不安全的HTTP 传输 164
7.3.2 HTTPS 传输更安全 166
7.3.3 HTTPS 证书未验证 168
7.3.4 防止盗链 168
7.3.5 敏感词 170
7.4 防止越权和权限控制 171
7.4.1 什么是越权访问 171
7.4.2 造成越权的原因 172
7.4.3 RBAC 控制模型 173
7.4.4 系统鉴权 174
7.4.5 系统隔离 175
7.5 API 接口访问安全 175
7.5.1 IP 白名单 176
7.5.2 摘要认证 177
7.5.3 OAuth 认证 178
7.6 防止接口重放 181
7.6.1 使用时间戳 181
7.6.2 使用Nonce 182
7.6.3 同时使用时间戳和Nonce 184
7.7 小结 186
第8章 PHP 业务逻辑安全 187
8.1 短信安全 187
8.1.1 短信的安全隐患 187
8.1.2 短信安全策略 188
8.2 敏感信息泄露 189
8.2.1 登录密码泄露 189
8.2.2 登录信息泄露 189
8.2.3 资源遍历泄露 189
8.2.4 物理路径泄露 190
8.2.5 程序使用版本泄露 191
8.2.6 JSON 劫持导致用户信息泄露 191
8.2.7 源代码泄露 192
8.3 人机识别策略 192
8.3.1 图片验证码 193
8.3.2 短信验证码 194
8.3.3 语音验证码 194
8.3.4 其他验证方式 196
8.4 常见业务流程安全 196
8.4.1 注册安全 196
8.4.2 登录安全 196
8.4.3 密码找回安全 198
8.4.4 修改密码安全 200
8.4.5 支付安全 201
8.5 其他业务安全 202
8.6 小结 203
第9章 应用软件安全204
9.1 应用指纹安全 204
9.2 服务器端口安全 205
9.3 Apache 的使用安全 208
9.3.1 运行安全 209
9.3.2 访问安全 210
9.3.3 隐藏Apache 版本号 210
9.3.4 目录和文件安全 211
9.3.5 防止目录遍历 212
9.3.6 日志配置 214
9.3.7 413 错误页面跨站脚本漏洞 216
9.3.8 上传目录限制 217
9.4 Nginx 的使用安全 217
9.4.1 运行安全 217
9.4.2 项目配置文件 218
9.4.3 日志配置 218
9.4.4 目录和文件安全 220
9.4.5 隐藏版本号 220
9.4.6 防止目录遍历 221
9.4.7 Nginx 文件类型错误解析漏洞 221
9.4.8 IP 访问限制 223
9.5 MySQL 的使用安全 224
9.5.1 运行安全 225
9.5.2 密码安全 226
9.5.3 账号安全 226
9.5.4 数据库安全 227
9.5.5 限制非授权IP 访问 228
9.5.6 文件读取安全 228
9.5.7 常用安全选项 229
9.5.8 数据安全 231
9.6 Redis 的使用安全 231
9.6.1 密码安全 231
9.6.2 IP 访问限制 232
9.6.3 运行安全 232
9.7 Memcache 的使用安全 233
9.7.1 IP 访问限制 233
9.7.2 使用SASL 验证 234
9.8 小结 237
第 10章 企业研发安全体系建设238
10.1 微软工程项目安全简介 238
10.2 OWASP 软件保障成熟度模型简介 239
10.3 建立合理的安全体系 239
10.3.1 制定安全规范标准 239
10.3.2 业务需求安全分析 240
10.3.3 编码过程安全 241
10.3.4 进行安全测试 241
10.3.5 线上安全 241
10.4 安全应急响应 241
10.5 小结 242
附录243
附录1 PHP 各版本漏洞 243
附录2 常见PHP 开源系统指纹 276
猜您喜欢

读书导航