导读
本书总共分为三个部分。第一部分为代码审计前的准备,包括第1章以及第2章,第1章详细介绍我们在学习代码审计前需要了解的PHP核心配置文件以及PHP环境搭建的方法,第2章介绍学习PHP代码审计需要准备的工具,以及这些工具的详细使用方法。
第二部分包括第3~8章,着重介绍PHP代码审计中的漏洞挖掘思路与防范方法。
第3章详细介绍PHP代码审计的思路,包括根据关键字回溯参数、通读全文代码以及根据功能点定向挖掘漏洞的三个思路。
第4~6章讲述常见漏洞的审计方法,分别对应基础篇、进阶篇以及深入篇,涵盖SQL注入漏洞、XSS漏洞、文件操作漏洞、代码/命令执行漏洞、变量覆盖漏洞以及逻辑处理等漏洞。
第7章介绍二次漏洞的挖掘方法,二次漏洞在逻辑上比常规漏洞要复杂,所以我们需要单独拿出来,以实例来进行介绍。
在经过前面几章的代码审计方法学习之后,相信大家已经能够挖掘不少有意思的漏洞。第8章将会介绍代码审计中的更多小技巧,利用这些小技巧可以挖掘到更多有意思的漏洞。每类漏洞都有多个配套的真实漏洞案例分析过程,有助于读者学习代码审计的经验。不过,该章不仅介绍漏洞的挖掘方法,还详细介绍这些漏洞的修复方法,对开发者来说,这是非常有用的一部分内容。
第三部分包括第9~12章,主要介绍PHP安全编程的规范,从攻击者的角度来告诉你应该怎么写出更安全的代码,这也是本书的核心内容:让代码没有漏洞。第9章主要介绍参数的安全过滤,所有的攻击都需要有输入,所以我们要阻止攻击,第一件要做的事情就是对输入的参数进行过滤,该章详细分析discuz的过滤类,用实例说明什么样的过滤更有效果。
第10章主要介绍PHP中常用的加密算法。目前99%以上的知名网站都被拖过库,泄露了大量的用户数据,而这一章将详细说明使用什么样的加密算法能够帮助你增强数据的安全性。
第11章涉及安全编程的核心内容。所有的应用都是一个个功能堆砌起来的,该章从设计安全功能的角度出发,从攻击者的角度详细分析常见功能通常会出现的安全问题,在分析出这些安全问题的利用方式后,再给出问题的解决方案。如果你是应用架构师,这些内容能够帮助你在设计程序功能的时候避免这些安全问题。
第12章介绍应用安全体系建设的两种策略以及实现案例:横向细化和纵深策略,企业的应用安全应把这两种策略深入到体系建设中去。
以上就是本书的全部内容,看到介绍之后你是不是有点儿兴奋呢?赶紧来边读边试吧。
感言和致谢
这本书断断续续写了一年多,期间也发生了很多事情。在2014年9月的时候从创新工场旗下项目安全宝离职,加入到阿里巴巴安全部。到了一个新的环境,工作上面倒是很快就融入了进去,只是从北京到杭州,是从一个快节奏的城市转到一个慢节奏的城市,感觉整个人变懒了,没有以前在北京那样每天激情澎湃。曾经一度想过放弃,因为心里总感觉像是被捆住了一样,想去做一些事情却因为还有这本书没写完而不能去做。因为写这本书是我必须要做的事情,一是算是给我自己在安全领域的一个交代,二是我承诺过吴怡编辑,一定会努力写好这本书,在这个事情上我看得很严肃,承诺了就一定要做到。
为什么说这算是给自己在安全领域的一个交代呢?记得跟不少朋友说过,创业是我必定要做的一个事情,或许哪天转行创业了,在这个行业里留下了点东西也心安了。回想自己从最初迷恋上网络安全到现在,中间的一些转折点和小插曲还挺有意思,比如以全校第一的成绩考上重点高中之后,读了一年就退学去离家很远的软件开发培训学校,花500块钱在网吧淘了一台放酷狗都卡得不行的台式机,在重庆连续通宵读书快一年,等等,这些都已经是美好的回忆。在这些美好回忆中遇到很多美好的人,想对他们说声谢谢。
感谢父母和姐姐、姐夫,最早去重庆的时候,姐姐还怀着马上要出生的外甥女,跟姐夫开车送我去重庆。学校一个学期一两万的学费,父母预支薪水供我读书,感谢他们的付出。
感谢机械工业出版社的吴怡编辑,如果没有她的鼓励和指导,也不会有这本书的面世,真心感谢她。
感谢吴瀚清(网名:刺、道哥、大风),在安全宝的时间里,刺总给了我很多帮助,不管是工作上还是个人成长上都给予引导和包容,他是一位真正的好老板。
感谢safekey team的兄弟们,他们是晴天小铸、tenzy、x0h4ck3r、zvall、yy520以及cond0r,本书里面有多个影响非常大的0day出自他们之手,我们因为喜欢代码审计而聚集在一起。
感谢曾经陪我熬了无数个通宵的好哥们Snow、小软,我们曾经一起渗透,一起研究,一起写代码,无不分享。
感谢工作中同我一起奋斗的同事们,没有他们的辛苦战斗就没有今天我们攻城拔寨的辉煌战绩,他们包括但不限于:翁国军、李翼、全龙飞、曾欢。
感谢喜付宝的林能(ID:矢志成谜)对本书提出的建设性建议。
尹毅
微信:seayace
邮箱:root@cnseay.com
博客:www.cnseay.com
微博:http://weibo.com/seayace