欢迎来到 bowen.cn 官方网站!
PHP应用程序安全编程

PHP应用程序安全编程

内容简介《PHP应用程序安全编程

联系电话:
产品详情

内容简介

《PHP应用程序安全编程》通过实际情景、示例代码深入浅出地介绍了经常困挠PHPWeb应用程序开发人员的常见安全问题。主要内容包括:去除应用程序安全漏洞,防御PHP攻击,提高运行PHP代码的服务器安全,实施严格的身份验证以及加密应用程序,跨站点脚本攻击,系统化测试应用程序安全性,解决第三方应用程序已有漏洞等。  《PHP应用程序安全编程》内容丰富,理论和实践紧密结合。通过详细概念说明和完整实例代码,读者可以轻松将自己所学的理论知识付诸实践。《PHP应用程序安全编程》适用于各个阶段的Web应用程序开发人员。

目录

译者序
第一篇 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.1 escapeshellcmd()
3.2.2 escapeshellarg()
3.3 创建能够处理所有系统调用的API
3.3.1 为什么不转义参数呢
3.3.2 验证用户输入
3.4 修补留言板应用程序
3.4.1 moveFile()函数
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 在应用程序中增加密码加

摘要与插图

1.2.2 编程人员可以提高应用程序的安全性
  作为世界信息技术见的话题,安全一直被认为是困难、复杂的,并且留给拥有大量证书的专家、计算机科学领域的博士以及具有20年行业经验的专家。一旦理解安全的基础知识,你将发现要的安全概念其实并不像看上去那么困难。有时候需要安全专家的帮助,但是你不一定要成为安全专家才能提高应用程序的安全。本书提取了一些关于提高应用程序安全性的精华信息,它们可以帮助理解应用程序基础安全概念。
  在开始了解特定安全技术之前,我们需要了解为什么需要理解安全。只要你将应用程序发布给公众——尤其你的应用程序运行在的服务器——你将成为黑客的靶子。即使一个简单的应用程序都可能成为黑客的兴趣点。其实,黑客并不需要聪明或受过高等教育,他们可以是普通的编程人员。他们拥有大量的时间,希望测试自己能否应对系统管理员和应用程序编程人员。只要你的代码在公共服务器运行,你就应该假设黑客可能会找到它并且尝试攻击它。根据你的服务器吸引人的程度以及安全漏洞明显程度的不同,这可能需要几年的时间,也可能你几天后就能看到第一个攻击。
  这是否意味着你应该放弃防御黑客?当然不是。安全漏洞不是不可避免的。安全漏洞之所以常见,是因为大多数程序员都不理解提高应用程序安全的基本方法。一旦阅读了本书,你就可以使用所有的工具来改善应用程序的安全性。黑客将其精力集中在易攻击的目标,但是你可以采取一些步骤使得黑客放弃你的应用程序。不用担心,本书介绍的所有技术都简单,但是却可以让应用程序的安全性有质的变化。
  1.3 安全困惑
  有些程序员随机创建复杂的目录结构和文件,使用一些毫无意义的名称用来迷惑黑客。遗憾的是,由于黑客攻击的方法,困惑的文件名称以及将其保存在复杂的目录结构并不能真正解决问题。这种策略将使得你的代码难于维护、更新。
  大多数黑客都不会通过查看你的应用程序代码来找到漏洞。他们一般都比较懒惰(这是好事)。与花费大量时间和精力直接查找应用程序漏洞不同,他们编写脚本来挖掘应用程序代码漏洞。在花费足够的时间后,这些脚本将会找到有效的方法遍历杂的目录结构。如图l-2所示。
在线客服
微信联系
客服
扫码加微信(手机同号)
电话咨询
返回顶部