内容简介

PHP Web安全开发实战》结合在安全方面的开发经验,站在开发者的角度,循序渐进地介绍了大量实际发生的漏洞案例,并给出了技术解决方案,包括:常见的网络攻击、代码安全、前端脚本安全、后端应用安全、账户安全、加解密认证、SQL注入以及服务器配置等内容。通过阅读《PHP Web安全开发实战》,读者能够对整个网络安全有一个全新的认识和深入的理解,从而成为一位懂安全、会防护的工程师,避免在工作中成为黑客攻击的对象。
PHP Web安全开发实战》适合PHP开发人员、网络维护人员以及对网络安全攻防技术感兴趣的读者阅读。

作者简介

汤青松,2017PHP全球开发者大会安全话题演讲嘉宾,前乌云众测研发工程师,慕课网Web安全方向高级讲师;现工作于中国婚博会,负责技术实现与数据安全方面的工作。

目录

目录
第1章信息泄露1
1.1主机信息1
1.1.1子域名信息2
1.1.2端口信息5
1.1.3域名注册信息10
1.1.4网站后台地址12
1.2源码泄露14
1.2.1Git源码泄露15
1.2.2SVN源码泄露17
1.2.3.DS_Store文件泄露18
1.2.4网站备份压缩文件20
1.2.5WEB-INF/web.xml泄露21
1.2.6防御方案24
1.3账户弱口令24
1.3.1漏洞成因24
1.3.2漏洞危害25
1.3.3漏洞案例26
1.3.4防范方法29
第2章常规漏洞31
2.1SQL注入31
2.1.1注入方式32
2.1.2漏洞的3种类型39
2.1.3检测方法41
2.1.4防范方法43
2.1.5代码审查45
2.1.6小结47
2.2XSS跨站47
2.2.1XSS漏洞类型48
2.2.2漏洞危害51
2.2.3防范方法54
2.2.4操作实践56
2.2.5代码审查58
2.2.6小结59
2.3代码注入与命令执行59
2.3.1漏洞类型60
2.3.2漏洞案例62
2.3.3防御方法65
2.3.4命令执行65
2.3.5小结67
2.4CSRF跨站请求伪造67
2.4.1原理分析67
2.4.2漏洞案例68
2.4.3操作实践72
2.4.4防御方法73
2.4.5防御代码示例74
2.4.6小结75
2.5文件包含76
2.5.1漏洞成因76
2.5.2本地文件包含76
2.5.3远程文件包含79
2.5.4测试方法82
2.5.5使用PHP封装协议83
2.5.6小结84
2.6文件上传漏洞85
2.6.1利用方式85
2.6.2上传检测86
2.6.3解析漏洞87
2.6.6小结92
第3章业务逻辑安全93
3.1验证码安全93
3.1.1图片验证码94
3.1.2数字暴力破解98
3.1.3空验证码突破99
3.1.4绕过测试101
3.1.5凭证返回102
3.1.6小结103
3.2密码找回103
3.2.1敏感信息泄露104
3.2.2邮箱弱token105
3.2.3验证的有效性106
3.2.4注册覆盖107
3.2.5小结109
3.3接口盗用109
3.3.1API盗用109
3.3.2短信轰炸111
3.4账户越权116
3.4.1未授权访问116
3.4.2水平越权118
3.4.3垂直越权120
3.4.4小结121
3.5支付漏洞121
3.5.1支付流程分析122
3.5.2金额数据篡改123
3.5.3商品数量篡改125
3.5.4运费金额修改127
3.5.5小结128
3.6SSRF服务端请求伪造129
3.6.1漏洞成因129
3.6.2漏洞案例131
3.6.3总结134
第4章LANMP安全配置135
4.1PHP安全配置135
4.2PHP安全扩展139
4.2.1taint简介139
4.2.2安装taint140
4.2.3测试验证141
4.2.4小结144
4.3Apache安全配置144
4.3.1屏蔽版本信息144
4.3.2目录权限隔离145
4.3.3关闭默认主机145
4.3.4低权限运行145
4.3.5防止用户自定义设置145
4.3.6禁止显示目录146
4.4Nginx安全配置148
4.4.1配置防御148
4.4.2防止权限扩大149
4.4.3WAF扩展150
4.4.4Nginx解析漏洞152
4.5Redis配置154
4.5.1漏洞成因154
4.5.2漏洞案例156
4.5.3小结157
4.6MySQL安全配置157
4.6.1权限安全157
4.6.2网络配置162
4.6.3MySQL日志163
4.6.4主机配置164
4.6.5启动选项165
第5章认证与加密167
5.1数据加密与签名167
5.1.1对称加密与非对称加密167
5.1.2数字签名169
5.1.3数字证书170
5.2HTTPS安全171
5.2.1HTTPS简介171
5.2.2HTTPS被攻击的方式173
5.2.3常见误区174
5.3密码加密策略175
5.3.1密码存储176
5.3.2密码传输178
5.3.3漏洞案例178
5.3.4总结180
第6章其他Web安全主题181
6.1DDoS攻击181
6.1.1DDoS分类182
6.1.2应对方案183
6.1.3漏洞案例184
6.1.4小结186
6.2CMS通用漏洞186
6.2.1漏洞简介186
6.2.2等级划分187
6.2.3漏洞案例188
6.2.4防御方法191
6.3网页挂马192
6.3.1挂马类型193
6.3.2挂马检测194
6.3.3小结196
6.4BurpSuite196
6.4.1拦截数据包197
6.4.2修改数据包198
6.4.3页面链接抓取199
6.4.4自动化挖掘201
6.4.5暴力破解201
6.5SQLMap203
6.5.1查看数据库账户205
6.5.2查看数据库中的所有账户206
6.5.3获取所有数据库名称207
6.5.4获取数据库表名称208
6.5.5查看表结构209
6.5.6导出数据210

前言/序言

前言
在准备写这《PHP Web安全开发实战》的时候参考了很多Web安全方面的资料和书籍,我发现很多书籍和资料都是从攻击者的角度来讲述Web安全的。为了防止《PHP Web安全开发实战》和其他的书籍以及相关资料同质化,在规划《PHP Web安全开发实战》的时候,特意从PHP开发者的角度出发,目的是让开发者提升安全开发的能力,书中会讲到目前Web安全中的常见漏洞、相关的漏洞案例、最佳的安全防范方法,以及我自己的观点,希望能帮到需要提升安全知识的PHP从业者。
PHP Web安全开发实战》内容
第1章信息泄露
此书面向安全意识薄弱的开发者,因此在第1章中带领读者入门,主要介绍攻击者在攻击服务器时在前期如何探查服务器信息,攻击者有哪些手段来挖掘漏洞,让读者能够快速了解漏洞是如何被发现的。
第2章常规漏洞
讲解开发者在编码过程中,因缺乏安全意识或遗漏而导致的安全问题;同时通过生动的案例分析来说明攻击者是如何发现此类安全问题的;最后在章节末尾会提到开发者如何规避这些编码导致的安全问题。
第3章业务逻辑安全
在设计一些业务的时候,不仅编码会产生安全漏洞,业务同样会产生大问题,比如常见的越权漏洞、支付漏洞、验证码问题,这些问题其实在设计功能之初就应该考虑到项目计划中去。
第4章LANMP安全配置
对于PHP开发者来说,一定离不开Nginx、Apache、MySQL、PHP、Redis等配置,不过这些配置并不会经常用到,通常是配置一次,后面就不用再理会。这也导致了开发者因为对配置的陌生而出现不少安全问题,本章会总结出因为配置不当而带来的安全问题,同时也会给出正确的安全配置建议。
第5章认证与加密
在进行业务开发的过程中,我们很频繁地使用加密与解密,但对其底层原理却了解得甚少,甚至部分开发者无法分清认证与加密的区别,本章主要介绍加密和认证的相关技术,以帮助开发人员了解其技术特点,从而开发出安全的应用。
第6章其他Web安全主题
攻击者的攻击方式是多样的,我们在防范安全问题的同时,一定要有重点目标,所以本章会提到漏洞的危险等级划分、CMS引起的漏洞如何防御、对自身的业务如何安全测试、在测试的同时如何提升效率,本章还会介绍两款经典的安全检测工具:BurpSuite和SQLMap,让读者能够对自己开发的产品进行安全检测。
PHP Web安全开发实战》读者对象
这《PHP Web安全开发实战》面向懂PHP开发但不擅长安全方面的开发者,可以通过此书让你在Web安全方面快速成长,在书中列出了很多互联网的漏洞案例,目的是让读者看了之后更加了解攻击者是如何发现漏洞的,从而让开发者在开发时能够对症下药。
由于编者水平有限,虽已尽力,但书中肯定还会存在许多不妥甚至谬误,敬请广大读者和专家不吝指教,非常感谢。
汤青松
2018年4月于北京


其他推荐