PHP应用程序安全编程

PHP应用程序安全编程
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: (Tricia Ballad) , (Tricia Ballad)
2010-01
版次: 1
ISBN: 9787111291817
定价: 42.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 208页
正文语种: 简体中文
原版书名: Securing PHP Web Applications
27人买过
  •   《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创建能够处理所有系统调用的API
    3.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内存分配和PHP
    4.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修改API
    6.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创建身份验证API
    7.6小结

    第8章加密
    8.1什么是加密
    8.2加密类型
    8.2.1算法能力
    8.2.2速度和安全性
    8.2.3数据的使用
    8.3密码的安全性
    8.4在应用程序中增加密码加密功能
    8.4.1修改User表
    8.4.2创建加密和salt函数
    8.4.3修改密码验证系统
    8.5小结

    第9章会话安全性
    9.1什么是会话变量
    9.2会话攻击的主要类型
    9.2.1会话固化
    9.2.2会话劫持
    9.2.3会话毒化(注入)
    9.3修补应用程序代码以提高会话安全性
    9.4小结

    第10章跨站式脚本编程
    10.1什么是XSS
    10.2反射式XSS
    10.3存储式XSS
    10.4修补应用程序代码防范XSS攻击
    10.5小结

    第五篇夜晚得锁门
    第11章保护Apache和MySQL
    11.1编程语言、Web服务器以及操作系统本身都是不安全的
    11.2提高UNIX、Linux或MacOSX环境的安全性
    11.3保护Apache
    11.3.1升级或安装Apache最新的稳定版本
    11.3.2设置Apache专有的用户和组
    11.3.3隐藏版本号以及其他敏感信息
    11.3.4将Apache限制在自身的目录结构中
    11.3.5禁用任何不必要的选项
    11.3.6安装和启用ModSecurity
    11.4保护MySQL
    11.4.1升级或安装最新版本
    11.4.2禁用远程访问
    11.4.3修改管理员用户名和密码
    11.4.4删除默认的数据库用户并为每个应用程序创建新账户
    11.4.5删除示例数据库
    11.5小结

    第12章IIS和SQLServer的安全性
    12.1Windows服务器环境的安全性
    12.2IIS的安全性
    12.2.1减少服务器的开放点
    12.2.2WebRoot的安全性
    12.3SQLServer的安全性
    12.3.1安装或升级到最新版本
    12.3.2MicrosoftSQLServer的安全性
    12.4小结

    第13章服务器端PHP的安全性
    13.1使用最新版本的PHP
    13.1.1Zend框架和Zend优化器
    13.1.2找到最新版本的PHP
    13.1.3使用Suhosin补丁和扩展
    13.2使用PHP和Apache内置的安全特性
    13.2.1safe-mode
    13.2.2SuEXEC
    13.3使用ModSecurity
    13.4php.ini的安全性
    13.5小结

    第14章自动化测试介绍
    14.1为什么在关于安全的书籍中介绍测试
    14.2测试框架
    14.3测试类型
    14.3.1单元测试
    14.3.2系统测试
    14.4选择合适的测试数据
    14.5小结

    第15章探索性测试介绍
    15.1什么是探索性测试
    15.2Fuzz测试
    15.2.1安装和配置PowerFuzzer
    15.2.2使用PowerFuzzer
    15.3测试工具集
    15.3.1下载CAL9000
    15.3.2使用CAL9000
    15.4专有测试套件
    15.4.1专有测试套件的优点和特性
    15.4.2使用专有测试套件扫描你的应用程序
    15.5小结

    第六篇“不被攻击”并不是一个可行的安全策略
    第16章计划A:从开始阶段设计安全的应用程序
    16.1在开始编写代码之前
    16.1.1概念总结
    16.1.2工作流和角色图
    16.1.3数据设计
    16.1.4框架函数
    16.2标识故障点
    16.2.1登录和登出
    16.2.2文件上载
    16.2.3用户输入
    16.2.4文件系统访问
    16.3小结

    第17章计划B:去除已有应用程序的安全漏洞
    17.1设置环境
    17.1.1使用三阶段部署
    17.1.2使用版本控制
    17.2提高应用程序安全的检查列表
    17.2.1检查服务器安全性
    17.2.2找到代码漏洞
    17.2.3修复最明显的问题
    17.2.4同事间的代码评审
    17.3小结

    第18章安全是生活方式的选择:成为一个优秀的编程人员
    18.1避免过多特性
    18.2编写自文档化代码
    18.3使用适合工作的工具
    18.4执行同事间的代码评审
    18.5小结
    附录额外资源
    术语表
  • 内容简介:
      《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创建能够处理所有系统调用的API
    3.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内存分配和PHP
    4.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修改API
    6.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创建身份验证API
    7.6小结

    第8章加密
    8.1什么是加密
    8.2加密类型
    8.2.1算法能力
    8.2.2速度和安全性
    8.2.3数据的使用
    8.3密码的安全性
    8.4在应用程序中增加密码加密功能
    8.4.1修改User表
    8.4.2创建加密和salt函数
    8.4.3修改密码验证系统
    8.5小结

    第9章会话安全性
    9.1什么是会话变量
    9.2会话攻击的主要类型
    9.2.1会话固化
    9.2.2会话劫持
    9.2.3会话毒化(注入)
    9.3修补应用程序代码以提高会话安全性
    9.4小结

    第10章跨站式脚本编程
    10.1什么是XSS
    10.2反射式XSS
    10.3存储式XSS
    10.4修补应用程序代码防范XSS攻击
    10.5小结

    第五篇夜晚得锁门
    第11章保护Apache和MySQL
    11.1编程语言、Web服务器以及操作系统本身都是不安全的
    11.2提高UNIX、Linux或MacOSX环境的安全性
    11.3保护Apache
    11.3.1升级或安装Apache最新的稳定版本
    11.3.2设置Apache专有的用户和组
    11.3.3隐藏版本号以及其他敏感信息
    11.3.4将Apache限制在自身的目录结构中
    11.3.5禁用任何不必要的选项
    11.3.6安装和启用ModSecurity
    11.4保护MySQL
    11.4.1升级或安装最新版本
    11.4.2禁用远程访问
    11.4.3修改管理员用户名和密码
    11.4.4删除默认的数据库用户并为每个应用程序创建新账户
    11.4.5删除示例数据库
    11.5小结

    第12章IIS和SQLServer的安全性
    12.1Windows服务器环境的安全性
    12.2IIS的安全性
    12.2.1减少服务器的开放点
    12.2.2WebRoot的安全性
    12.3SQLServer的安全性
    12.3.1安装或升级到最新版本
    12.3.2MicrosoftSQLServer的安全性
    12.4小结

    第13章服务器端PHP的安全性
    13.1使用最新版本的PHP
    13.1.1Zend框架和Zend优化器
    13.1.2找到最新版本的PHP
    13.1.3使用Suhosin补丁和扩展
    13.2使用PHP和Apache内置的安全特性
    13.2.1safe-mode
    13.2.2SuEXEC
    13.3使用ModSecurity
    13.4php.ini的安全性
    13.5小结

    第14章自动化测试介绍
    14.1为什么在关于安全的书籍中介绍测试
    14.2测试框架
    14.3测试类型
    14.3.1单元测试
    14.3.2系统测试
    14.4选择合适的测试数据
    14.5小结

    第15章探索性测试介绍
    15.1什么是探索性测试
    15.2Fuzz测试
    15.2.1安装和配置PowerFuzzer
    15.2.2使用PowerFuzzer
    15.3测试工具集
    15.3.1下载CAL9000
    15.3.2使用CAL9000
    15.4专有测试套件
    15.4.1专有测试套件的优点和特性
    15.4.2使用专有测试套件扫描你的应用程序
    15.5小结

    第六篇“不被攻击”并不是一个可行的安全策略
    第16章计划A:从开始阶段设计安全的应用程序
    16.1在开始编写代码之前
    16.1.1概念总结
    16.1.2工作流和角色图
    16.1.3数据设计
    16.1.4框架函数
    16.2标识故障点
    16.2.1登录和登出
    16.2.2文件上载
    16.2.3用户输入
    16.2.4文件系统访问
    16.3小结

    第17章计划B:去除已有应用程序的安全漏洞
    17.1设置环境
    17.1.1使用三阶段部署
    17.1.2使用版本控制
    17.2提高应用程序安全的检查列表
    17.2.1检查服务器安全性
    17.2.2找到代码漏洞
    17.2.3修复最明显的问题
    17.2.4同事间的代码评审
    17.3小结

    第18章安全是生活方式的选择:成为一个优秀的编程人员
    18.1避免过多特性
    18.2编写自文档化代码
    18.3使用适合工作的工具
    18.4执行同事间的代码评审
    18.5小结
    附录额外资源
    术语表
查看详情
系列丛书 / 更多
PHP应用程序安全编程
PHP和MySQL Web开发(原书第4版):PHP and MySQL Web Development, Fourth Edition
[澳]Luke、[澳]Luke Welling 著;武欣 译
PHP应用程序安全编程
Objective-C 2.0程序设计
[美]科施恩 著;张波 译
PHP应用程序安全编程
软件测试实用技术与常用模板
李龙 著
PHP应用程序安全编程
OpenGL编程指南(原书第7版)
[美]施瑞奈尔 著;李军 译
PHP应用程序安全编程
PHP和MySQL Web开发
威利、武欣 著
PHP应用程序安全编程
测试驱动的面向对象软件开发
[美]弗里曼、[美]普雷斯 著;王海鹏 译
PHP应用程序安全编程
Windows高级调试
[美]赫瓦特 著;聂雪军 译
PHP应用程序安全编程
成功的软件开发(原书第2版)
多纳尔德森 编;刘列励 译
PHP应用程序安全编程
重构:Ruby版
[美]菲尔德斯 著;徐旭铭 译
PHP应用程序安全编程
PHP和MySQL Web应用开发核心技术
温施耐德 著
PHP应用程序安全编程
测试驱动的JavaScript开发
[美]Christian Johansen 著;赵勇 译
PHP应用程序安全编程
Windows并发编程指南
[美]杜飞(Duffy J.) 著;聂雪军 译