首页>参考读物>计算机科学与技术>综合

PHP应用程序安全编程
作者 : (美)Tricia Ballad; William Ballad 著
译者 : 姜燕梅 罗云峰 武欣 等译
出版日期 : 2009-12-24
ISBN : 978-7-111-29181-7
定价 : 42.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 215
开本 : 16
原书名 : Securing PHP Web Applications, 1E
原出版社: Pearson Education Asia
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书帮助读者掌握编写可靠PHP代码,提高正在使用的PHP软件安全所需的技术、技巧以及最佳实践。本书作者拥有超过15年在Web开发、安全以及培训方面的经验,介绍如何找到PHP代码的安全漏洞,同时给出PHP开发人员最容易犯下的安全错误。作者给出了一些实用而又专业的解决方案。本书涵盖了PHP代码安全最重要的部分,包括错误处理、缓存溢出、输入验证以及文件系统访问。作者深入浅出的揭示了经常困挠PHP程序员的常见代码安全问题,同时介绍了如何在不牺牲软件性能或产品效率的前提下编写更加安全的代码。

图书特色

适用于每一个PHP开发人员的简单且强大的安全编程技巧

PHP应用程序安全编程
(美) Tricia Ballad
William Ballad  著
姜燕梅 罗云峰 武 欣 等译

封底:
适用于每一个PHP开发人员的简单且强大的安全编程技巧

本书将帮助你掌握编写可靠的PHP代码和提高你正在使用的PHP软件安全所需的技术、技巧以及最佳实践。作者揭示经常困挠PHP程序开发人员的常见代码安全问题,同时给出实用且专业的解决方案——不管你拥有多少PHP编程经验,这些技术都非常容易理解和使用。

本书具体包括
从起步阶段设计安全的应用程序——去除已有应用程序安全漏洞。
防御PHP自身无法防御的会话劫持、固化以及毒化攻击。
提高运行PHP代码的服务器的安全性,包括针对Apache、MySQL、IIS/SQL服务器的具体指导。
实施严格的身份验证以及加密应用。
预防危险的跨站点脚本攻击。
系统化测试应用程序的安全性,包括探索式测试和PHP自动化测试。
解决第三方应用程序的已有漏洞。

作者简介
Tricia Ballad 在成为专职技术写作人员之前,她花费了几年时间从事LAMP(Linux、Apache、MySQL和PHP/Perl)平台上的Web应用程序开发工作。目前她专门编写不同技术的在线课件。
William Ballad 曾经工作在信息技术领域的各个层面,从父母的ISP公司的硬件维护工程师到世界级大型公司的基于Windows和异构网络的架构师。他多年来一直活跃在IT安全领域,最近领导着一支专门抵御国际化黑客组织攻击OptionCart(一个广泛使用的电子商务系统)的团队。

封底文字

封面:适用于每一个PHP开发人员的简单而又强大的安全编程技巧。

适用于每一个PHP开发人员的简单而又强大的安全编程技巧。
黑客最喜欢攻击PHP Web应用程序。为什么?因为他们知道许多PHP Web应用程序都是由一些缺乏软件安全经验或培训的程序员编写的。不用担心,本书将帮助你掌握编写可靠PHP代码和提高你正在使用的PHP软件安全所需的技术、技巧以及最佳实践。
拥有了超过15年在Web开发、安全以及培训方面的经验,Tricia和William Ballad介绍了如何找到PHP代码的安全漏洞,同时他们还给出了PHP开发人员最容易犯下的安全错误。作者给出了一些实用而由专业的解决方案——不管你拥有PHP多少编程经验,这些技术都非常容易理解和使用。
本书涵盖了PHP代码安全最重要的部分,包括错误处理、缓存溢出、输入验证以及文件系统访问。作者深入浅出的揭示了经常困挠PHP程序员的常见代码安全问题,同时介绍了如何在不牺牲软件性能或产品效率的前提下编写更加安全的代码。
本书具体包括了:
· 从起步开始设计安全应用程序——消除已有应用程序安全漏洞
· 防御PHP本身无法防御的会话劫持、固化以及毒化攻击
· 提高运行PHP代码的服务器安全,包括针对Apache、MySQL、IIS/SQL服务器的具体指导
· 实施严格的身份验证以及加密的应用
· 预防危险的跨站点脚本攻击
· 系统化测试你的应用程序安全,包括了探索式测试和PHP自动化测试的详细介绍
· 解决第三方应用程序的已有漏洞

Tricia和William通过给出现实情景、示例代码、实践清单、详尽图表等深入浅出的介绍了PHP安全。无论你是否编写专业的或业余的Web应用程序,还是只是使用别人的PHP脚本,你也会需要本书——在黑客找到你之前,你现在就需要本书。

作者简介

(美)Tricia Ballad; William Ballad 著:Tricia Ballad 在成为专职技术写作人员之前,她花费了几年的时间从事LAMP(Linux、Apache、MySQL和PHP/Perl)平台上的Web应用程序开发人员。她目前专门编写不同技术的在线教案。 William Ballad 曾经工作在信息技术领域的各个层面,包括就职父母所开ISP公司的硬件维护、世界大型公司的基于Windows和异构网络的架构师。作为IT安全领域多年的活跃分子,他最近领导了一支专门抵御国际化黑客组织攻击OptionCart(这是一个广泛使用的电子商务系统)的团队。 Ballads夫妇已经合著了几本关于Web开发的书籍,包括《PHP & MySQL Web Devepment All-in-One Desk Reference for Dummies》,该书由Wiley公司于2008年出版。

译者简介

姜燕梅 罗云峰 武欣 等译:暂无简介

图书目录

译者序
第一篇 Web开发是血腥运动——不打无准备仗
第1章 服务器安全问题以及其他高深问题1
 1.1 现实检查1
 1.2 服务器安全问题2
  1.2.1 黑客通过非安全应用程序获得控制权3
  1.2.2 编程人员可以提高应用程序的安全性4
 1.3 安全困惑4
 1.4 自身的会话管理提供安全性6
 1.5 “我的应用程序并不值得攻击”6
 1.6 “门卫”的典型表现6
 1.7 小结7
第二篇 安全漏洞是否大到能开大卡车
第2章 处理错误9
 2.1 留言板应用程序9
  2.1.1 程序总结9
  2.1.2 主要代码清单9
 2.2 用户执行过度操作10
  2.2.1 这些代码会产生什么结果10
  2.2.2 期待非期望输入13
 2.3 构建错误处理机制14
  2.3.1 测试非期望输入14
  2.3.2 决定如何处理错误数据17
  2.3.3 简化系统的使用18
 2.4 小结20
第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.1 escapeshellcmd()23
  3.2.2 escapeshellarg()24
 3.3 创建能够处理所有系统调用的API24
  3.3.1 为什么不转义参数呢24
  3.3.2 验证用户输入25
 3.4 修补留言板应用程序25
  3.4.1 moveFile()函数25
  3.4.2 修补应用程序26
 3.5 小结27
第三篇 名称里的内涵,远多于你所期望的
第4章 缓冲区溢出和变量整理29
 4.1 什么是缓冲区,什么是缓冲区溢出以及为什么要关注它29
  4.1.1 缓冲区、堆栈、堆和内存分配30
  4.1.2 缓冲区溢出的后果32
  4.1.3 内存分配和PHP32
  4.1.4 关注最新的安全警告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
第5章 验证输入41
 5.1 新特性:允许用户对留言板留言签名41
 5.2 问题:用户提供了过多的数据42
  5.2.1 发送垃圾邮件42
  5.2.2 注入攻击42
 5.3 假设:你了解你的数据42
  5.3.1 数据库限制43
  5.3.2 逻辑限制43
 5.4 解决方法:验证输入的正则表达式44
  5.4.1 数据污损44
  5.4.2 正则表达式简介45
  5.4.3 正则表达式的贪婪模式和惰性模式47
  5.4.4 常见验证输入模式49
 5.5 小结51
第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的文件权限57
  6.3.2 修改Windows文件权限58
  6.3.3 在PHP中修改文件权限63
 6.4 修补应用程序以便支持用户上传图像文件64
  6.4.1 修改API64
  6.4.2 创建上传表单66
 6.5 小结66
第四篇 “噢,你可以信任我”
第7章 身份验证67
 7.1 什么是用户身份验证67
  7.1.1 用户名和密码68
  7.1.2 图像识别70
 7.2 权限71
 7.3 验证用户的方法71
  7.3.1 基于字典的身份验证71
  7.3.2 用户数据库79
 7.4 保存用户名和密码80
  7.4.1 加密80
  7.4.2 密码强度80
  7.4.3 评估漏洞81
 7.5 修补应用程序以便增加用户身份验证82
  7.5.1 添加User数据库表和确认数据库的安全性82
  7.5.2 创建身份验证API83
 7.6 小结84
第8章 加密85
 8.1 什么是加密85
 8.2 加密类型86
  8.2.1 算法能力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
第9章 会话安全性91
 9.1 什么是会话变量91
 9.2 会话攻击的主要类型91
  9.2.1 会话固化91
  9.2.2 会话劫持93
  9.2.3 会话毒化(注入)94
 9.3 修补应用程序代码以提高会话安全性94
 9.4 小结96
第10章 跨站式脚本编程97
 10.1 什么是XSS97
 10.2 反射式XSS97
 10.3 存储式XSS97
 10.4 修补应用程序代码防范XSS攻击98
 10.5 小结99
第五篇 夜晚得锁门
第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 修改管理员用户名和密码…116
  11.4.4 删除默认的数据库用户并为每个应用程序创建新账户…117
  11.4.5 删除示例数据库118
 11.5 小结118
第12章 IIS和SQL Server的安全性…119
 12.1 Windows服务器环境的安全性…119
 12.2 IIS的安全性125
  12.2.1 减少服务器的开放点125
  12.2.2 Web Root的安全性126
 12.3 SQL Server的安全性131
  12.3.1 安装或升级到最新版本131
  12.3.2 Microsoft SQL Server的安全性138
 12.4 小结143
第13章 服务器端PHP的安全性144
 13.1 使用最新版本的PHP144
  13.1.1 Zend框架和Zend优化器144
  13.1.2 找到最新版本的PHP148
  13.1.3 使用Suhosin补丁和扩展149
 13.2 使用PHP和Apache内置的安全特性149
  13.2.1 safe_mode149
  13.2.2 SuEXEC150
 13.3 使用ModSecurity150
 13.4 php.ini的安全性151
 13.5 小结153
第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
第15章 探索性测试介绍159
 15.1 什么是探索性测试159
 15.2 Fuzz测试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 专有测试套件的优点和特性176
  15.4.2 使用专有测试套件扫描你的应用程序176
 15.5 小结181
第六篇 “不被攻击”并不是一个可行的安全策略
第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
第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 同事间的代码评审197
 17.3 小结197
第18章 安全是生活方式的选择:成为一个优秀的编程人员198
 18.1 避免过多特性198
 18.2 编写自文档化代码199
 18.3 使用适合工作的工具200
 18.4 执行同事间的代码评审201
 18.5 小结201
附录 额外资源202
术语表206

教学资源推荐
作者: 教育部高等学校计算机科学与技术专业教学指导分委员会 编制
作者: 沈华 杨晓艳 马驰 杨华 编著
作者: 陈蕾 主编 邓晶 仲兴荣 参编
作者: 刘粉林 刘九芬 罗向阳 等编著
参考读物推荐
作者: (美)Joseph J.Bambara Paul R.Allen等
作者: [印度]郎坦?约瑟夫(Lentin Joseph)著