《PHP应用程序安全编程》通过实际情景、示例代码深入浅出地介绍了经常困挠PHPWeb应用程序开发人员的常见安全问题。主要内容包括:去除应用程序安全漏洞,防御PHP攻击,提高运行PHP代码的服务器安全,实施严格的身份验证以及加密应用程序,预防跨站点脚本攻击,系统化测试应用程序安全性,解决第三方应用程序已有漏洞等。 《PHP应用程序安全编程》内容丰富,理论和实践紧密结合。通过详细概念说明和完整实例代码,读者可以轻松将自己所学的理论知识付诸实践。《PHP应用程序安全编程》适用于各个阶段的Web应用程序开发人员。 巴雷德(TriciaBallad),在成为专职技术写作人员之前,她花费了几年时间从事LAMP(Linux、Apache、MySQL和PHP/Perl)平台上的Web应用程序开发工作。目前她专门编写不同技术的在线课件。 WilliamBallad,曾经工作在信息技术领域的各个层面,从父母的ISP公司的硬件维护工程师到世界级大型公司的基于Windows和异构网络的架构师。他多年来一直活跃在IT安全领域,最近领导着一支专门抵御国际化黑客组织攻击OptioriCart(一个广泛使用的电子商务系统)的团队。 译者序第一篇Web开发是血腥运动——不打无准备仗第1章服务器安全问题以及其他高深问题1.1现实检查1.2服务器安全问题1.2.1黑客通过非安全应用程序获得控制权1.2.2编程人员可以提高应用程序的安全性1.3安全困惑1.4自身的会话管理提供安全性1.5“我的应用程序并不值得攻击”1.6“门卫”的典型表现1.7小结第二篇安全漏洞是否大到能开大卡车第2章处理错误2.1留言板应用程序2.1.1程序总结2.1.2主要代码清单2.2用户执行过度操作2.2.1这些代码会产生什么结果2.2.2期待非期望输入2.3构建错误处理机制2.3.1测试非期望输入2.3.2决定如何处理错误数据2.3.3简化系统的使用2.4小结第3章系统调用3.1了解exec()、system()以及backtick的风险3.1.1通过SUID位和sudo使用系统命令3.1.2使用系统资源3.2使用escapeshellcmd()和escapeshellarg()保护系统调用3.2.1escapeshellcmd()3.2.2escapeshellarg()3.3创建能够处理所有系统调用的API3.3.1为什么不转义参数呢3.3.2验证用户输入3.4修补留言板应用程序3.4.1moveFile()函数3.4.2修补应用程序3.5小结第三篇名称里的内涵。远多于你所期望的第4章缓冲区溢出和变量整理4.1什么是缓冲区,什么是缓冲区溢出以及为什么要关注它4.1.1缓冲区、堆栈、堆和内存分配4.1.2缓冲区溢出的后果4.1.3内存分配和PHP4.1.4关注最新的安全警告4.2通过变量整理预防缓冲区溢出4.2.1前提:数据在证实为安全之前,都可能是有问题的,尤其是来自应用程序之外的数据4.2.2数据是从哪儿来的4.2.3如何整理数据以防止缓冲区溢出4.3为应用程序打补丁4.3.1验证是否为最新的稳定版本4.3.2检查变量整理4.4小结第5章验证输入5.1新特性:允许用户对留言板留言签名5.2问题:用户提供了过多的数据5.2.1发送垃圾邮件5.2.2注入攻击5.3假设:你了解你的数据5.3.1数据库限制5.3.2逻辑限制5.4解决方法:验证输入的正则表达式5.4.1数据污损5.4.2正则表达式简介5.4.3正则表达式的贪婪模式和惰性模式5.4.4常见验证输入模式5.5小结第6章文件系统访问:访问文件系统的乐趣和益处6.1打开文件6.1.1本地文件系统访问6.1.2远程文件系统访问6.1.3防止远程文件系统漏洞6.2创建并存储文件6.2.1允许文件上传6.2.2安全地存储文件6.3安全地修改文件属性6.3.1修改UNIX/Linux/MacOSx的文件权限6.3.2修改Windows文件权限6.3.3在PHP中修改文件权限6.4修补应用程序以便支持用户上传图像文件6.4.1修改API6.4.2创建上传表单6.5小结第四篇“噢,你可以信任我”第7章身份验证7.1什么是用户身份验证7.1.1用户名和密码7.1.2图像识别7.2权限7.3验证用户的方法7.3.1基于字典的身份验证7.3.2用户数据库7.4保存用户名和密码7.4.1加密7.4.2密码强度7.4.3评估漏洞7.5修补应用程序以便增加用户身份验证7.5.1添加User数据库表和确认数据库的安全性7.5.2创建身份验证API7.6小结第8章加密8.1什么是加密8.2加密类型8.2.1算法能力
阅读更多