本篇主要提供PHP应用程序安全编程电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
书[0名0]: | PHP应用程序安全编程[图书]|196294 |
图书定价: | 42元 |
图书作者: | (美)Tricia Ballad;William Ballad |
出版社: | [1机1]械工业出版社 |
出版日期: | 2010/1/1 0:00:00 |
ISBN号: | 9787111291817 |
开本: | 16开 |
页数: | 208 |
版次: | 1-1 |
作者简介 |
Tricia Ballad 在成为专职技术写作人员之前,她花费了几年时间从事LAMP(Linux、Apache、MySQL和PHP/Perl)平台上的Web应用程序开发工作。目前她专门编写不同技术的在线课[亻牛]。William Ballad 曾[纟巠]工作在信息技术[令页]域的各个层[mian],从父母的ISP公司的硬[亻牛]维护工程师到[世*级][0大0]型公司的基于Windows和异构网络的架构师。他多年来一直活跃在IT安全[令页]域,[*]近[令页]导着一支专门抵御[0国0]际化黑客组织攻[1击1]OptionCart(一个广泛使用的电子[0商0]务系统)的团队。 |
内容简介 |
本书通过实际情景、示例代码深入浅出地介绍了[纟巠]常困挠PHP Web应用程序开发人员的常见安全问题。[1主1]要内容包括:去除应用程序安全漏洞,防御PHP攻[1击1],[扌是]高运行PHP代码的服务器安全,实施严格的身份验证以及加密应用程序,预防跨站点脚本攻[1击1],系统化测试应用程序安全性,解决[0第0]三方应用程序已有漏洞等。 本书内容丰富,理论和实践紧密结合。通过详细概念说明和完整实例代码,读者可以轻松将自己所[0学0]的理论[0知0]识付诸实践。本书适用于各个阶段的Web应用程序开发人员。 本书将帮助你掌握编写可靠的PHP代码和[扌是]高你正在使用的PHP软[亻牛]安全所需的技术、技巧以及[*]佳实践。作者揭示[纟巠]常困挠PHP程序开发人员的常见代码安全问题,同时给出实用且专业的解决方案——不管你拥有多少PHP编程[纟巠]验,这些技术都非常容易理解和使用。 本书具体包括 ·从起步阶段设计安全的应用程序——去除已有应用程序安全漏洞。 ·防御PHP自身无[0法0]防御的[0会0]话劫持、固化以及毒化攻[1击1]。 ·[扌是]高运行PHP代码的服务器的安全性,包括针对Apache、MySQL、IIS/SQL服务器的具体指导。 ·实施严格的身份验证以及加密应用。 ·预防危险的跨站点脚本攻[1击1]。 ·系统化测试应用程序的安全性,包括探索式测试和PHP自动化测试。 ·解决[0第0]三方应用程序的已有漏洞。 |
目录 |
译者序 [0第0]一篇Web开发是血腥运动——不打无准备仗 [0第0]1章服务器安全问题以及其他高深问题1 1.1现实检查1 1.2服务器安全问题2 1.2.1黑客通过非安全应用程序获得控制[0权0]3 1.2.2编程人员可以[扌是]高应用程序的安全性4 1.3安全困惑4 1.4自身的[0会0]话管理[扌是]供安全性6 1.5“我的应用程序并不值得攻[1击1]”6 1.6“门卫”的典型表现6 1.7小结7 [0第0]二篇安全漏洞是否[0大0]到能开[0大0]卡车 [0第0]2章处理错误9 2.1留言板应用程序9 2.1.1程序总结9 2.1.2[1主1]要代码清单9 2.2用户执行过度[*]作10 2.2.1这些代码[0会0]产生什么结果10 2.2.2期待非期望输入13 2.3构建错误处理[1机1]制14 2.3.1测试非期望输入14 2.3.2决定如何处理错误数据17 2.3.3简化系统的使用18 2.4小结20 [0第0]3章系统调用21 3.1了解exec()、system()以及backtick的风险21 3.1.1通过SUID位和sudo使用系统命令22 3.1.2使用系统资源22 3.2使用escapeshellcmd()和escapeshellarg()保护系统调用23 3.2.1escapeshellcmd()23 3.2.2escapeshellarg()24 3.3创建能够处理所有系统调用的API24 3.3.1为什么不转义参数呢24 3.3.2验证用户输入25 3.4修补留言板应用程序25 3.4.1moveFile()函数25 3.4.2修补应用程序26 3.5小结27 [0第0]三篇[0名0]称里的内涵,远多于你所期望的 [0第0]4章缓冲区溢出和变量整理29 4.1什么是缓冲区,什么是缓冲区溢出以及为什么要关注它29 4.1.1缓冲区、堆栈、堆和内存分配30 4.1.2缓冲区溢出的后果32 4.1.3内存分配和PHP32 4.1.4关注[*][亲斤]的安全[0警0]告34 4.2通过变量整理预防缓冲区溢出37 4.2.1前[扌是]:数据在证实为安全之前,都可能是有问题的,尤其是来自应用程序之外的数据37 4.2.2数据是从哪儿来的37 4.2.3如何整理数据以防止缓冲区溢出37 4.3为应用程序打补丁38 4.3.1验证是否为[*][亲斤]的稳定版本...38 4.3.2检查变量整理39 4.4小结40 [0第0]5章验证输入41 5.1[亲斤]特性:允许用户对留言板留言签[0名0]41 5.2问题:用户[扌是]供了过多的数据42 5.2.1发送垃圾邮[亻牛]42 5.2.2注入攻[1击1]42 5.3[jia]设:你了解你的数据42 5.3.1数据库限制43 5.3.2逻辑限制43 5.4解决方[0法0]:验证输入的正则表达式44 5.4.1数据污损44 5.4.2正则表达式简介45 5.4.3正则表达式的贪婪模式和惰性模式47 5.4.4常见验证输入模式49 5.5小结51 [0第0]6章文[亻牛]系统访问:访问文[亻牛]系统的乐趣和益处52 6.1打开文[亻牛]52 6.1.1本地文[亻牛]系统访问52 6.1.2远程文[亻牛]系统访问53 6.1.3防止远程文[亻牛]系统漏洞54 6.2创建并存储文[亻牛]55 6.2.1允许文[亻牛]上传55 6.2.2安全地存储文[亻牛]56 6.3安全地修改文[亻牛]属性57 6.3.1修改UNIX/Linux/Mac OS X的文[亻牛][0权0]限57 6.3.2修改Windows文[亻牛][0权0]限58 6.3.3在PHP中修改文[亻牛][0权0]限63 6.4修补应用程序以便支持用户上传图像文[亻牛]64 6.4.1修改API64 6.4.2创建上传表单66 6.5小结66 [0第0]四篇“噢,你可以信任我” [0第0]7章身份验证67 7.1什么是用户身份验证67 7.1.1用户[0名0]和密码68 7.1.2图像识别70 7.2[0权0]限71 7.3验证用户的方[0法0]71 7.3.1基于字典的身份验证71 7.3.2用户数据库79 7.4保存用户[0名0]和密码80 7.4.1加密80 7.4.2密码强度80 7.4.3[0评0]估漏洞81 7.5修补应用程序以便增加用户身份验证82 7.5.1添加User数据库表和确认数据库的安全性82 7.5.2创建身份验证API83 7.6小结84 [0第0]8章加密85 8.1什么是加密85 8.2加密类型86 8.2.1算[0法0]能力87 8.2.2速度和安全性87 8.2.3数据的使用88 8.3密码的安全性88 8.4在应用程序中增加密码加密功能...88 8.4.1修改User表89 8.4.2创建加密和salt函数89 8.4.3修改密码验证系统89 8.5小结90 [0第0]9章[0会0]话安全性91 9.1什么是[0会0]话变量91 9.2[0会0]话攻[1击1]的[1主1]要类型91 9.2.1[0会0]话固化91 9.2.2[0会0]话劫持93 9.2.3[0会0]话毒化(注入)94 9.3修补应用程序代码以[扌是]高[0会0]话安全性94 9.4小结96 [0第0]10章跨站式脚本编程97 10.1什么是XSS97 10.2反[身寸]式XSS97 10.3存储式XSS97 10.4修补应用程序代码防范XSS攻[1击1]98 10.5小结99 [0第0]五篇夜晚得锁门 [0第0]11章保护Apache和MySQL101 11.1编程语言、Web服务器以及[*]作系统本身都是不安全的101 11.2[扌是]高UNIX、Linux或Mac OS X环境的安全性102 11.3保护Apache103 11.3.1升级或安装Apache[*][亲斤]的稳定版本104 11.3.2设置Apache专有的用户和组106 11.3.3隐藏版本号以及其他敏感信息107 11.3.4将Apache限制在自身的目录结构中107 11.3.5禁用任何不必要的选项109 11.3.6安装和启用ModSecurity109 11.4保护MySQL113 11.4.1升级或安装[*][亲斤]版本113 11.4.2禁用远程访问116 11.4.3修改管理员用户[0名0]和密码...116 11.4.4删除默认的数据库用户并为每个应用程序创建[亲斤]账户...117 11.4.5删除示例数据库118 11.5小结118 [0第0]12章IIS和SQL Server的安全性...119 12.1Windows服务器环境的安全性...119 12.2IIS的安全性125 12.2.1减少服务器的开放点125 12.2.2Web Root的安全性126 12.3SQL Server的安全性131 12.3.1安装或升级到[*][亲斤]版本131 12.3.2Microsoft SQL Server的安全性138 12.4小结143 [0第0]13章服务器端PHP的安全性144 13.1使用[*][亲斤]版本的PHP144 13.1.1Zend框架和Zend[0优0]化器144 13.1.2找到[*][亲斤]版本的PHP148 13.1.3使用Suhosin补丁和扩展149 13.2使用PHP和Apache内置的安全特性149 13.2.1safe_mode149 13.2.2SuEXEC150 13.3使用ModSecurity150 13.4php.ini的安全性151 13.5小结153 [0第0]14章自动化测试介绍154 14.1为什么在关于安全的书籍中介绍测试154 14.2测试框架155 14.3测试类型156 14.3.1单元测试156 14.3.2系统测试157 14.4选择合适的测试数据157 14.5小结158 [0第0]15章探索性测试介绍159 15.1什么是探索性测试159 15.2Fuzz测试160 15.2.1安装和配置PowerFuzzer160 15.2.2使用PowerFuzzer162 15.3测试工具集165 15.3.1下载CAL9000166 15.3.2使用CAL9000167 15.4专有测试套[亻牛]176 15.4.1专有测试套[亻牛]的[0优0]点和特性176 15.4.2使用专有测试套[亻牛]扫描你的应用程序176 15.5小结181 [0第0][6]篇“不被攻[1击1]”并不是一个可行的安全策略 [0第0]16章计划A:从开始阶段设计安全的应用程序183 16.1在开始编写代码之前183 16.1.1概念总结183 16.1.2工作流和角色图185 16.1.3数据设计186 16.1.4框架函数189 16.2标识故障点190 16.2.1登录和登出190 16.2.2文[亻牛]上载191 16.2.3用户输入192 16.2.4文[亻牛]系统访问192 16.3小结192 [0第0]17章计划B:去除已有应用程序的安全漏洞193 17.1设置环境193 17.1.1使用三阶段部署193 17.1.2使用版本控制194 17.2[扌是]高应用程序安全的检查列表...195 17.2.1检查服务器安全性195 17.2.2找到代码漏洞195 17.2.3修复[*]明显的问题196 17.2.4同事间的代码[0评0]审197 17.3小结197 [0第0]18章安全是生活方式的选择:成为一个[0优0]秀的编程人员198 18.1避免过多特性198 18.2编写自文档化代码199 18.3使用适合工作的工具200 18.4执行同事间的代码[0评0]审201 18.5小结201 附录额外资源202 术语表206 |