PHP应用程序安全编程PDF电子书下载
- 电子书积分:10 积分如何计算积分?
- 作 者:(美)TriciaBallad,WilliamBallad著
- 出 版 社:北京:机械工业出版社
- 出版年份:2010
- ISBN:9787111291817
- 页数:208 页
第一篇 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
第二篇 安全漏洞是否大到能开大卡车 9
第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 创建能够处理所有系统调用的API 24
3.3.1 为什么不转义参数呢 24
3.3.2 验证用户输入 25
3.4 修补留言板应用程序 25
3.4.1 moveFile()函数 25
3.4.2 修补应用程序 26
3.5 小结 27
第三篇 名称里的内涵,远多于你所期望的 29
第4章 缓冲区溢出和变量整理 29
4.1 什么是缓冲区,什么是缓冲区溢出以及为什么要关注它 29
4.1.1 缓冲区、堆栈、堆和内存分配 30
4.1.2 缓冲区溢出的后果 32
4.1.3 内存分配和PHP 32
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 修改API 64
6.4.2 创建上传表单 66
6.5 小结 66
第四篇 “噢,你可以信任我” 67
第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 创建身份验证API 83
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 什么是XSS 97
10.2 反射式XSS 97
10.3 存储式XSS 97
10.4 修补应用程序代码防范XSS攻击 98
10.5 小结 99
第五篇 夜晚得锁门 101
第11章 保护Apache和MySQL 101
11.1 编程语言、Web服务器以及操作系统本身都是不安全的 101
11.2 提高UNIX、Linux或Mac OS X环境的安全性 102
11.3 保护Apache 103
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 安装和启用ModSecurity 109
11.4 保护MySQL 113
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 使用最新版本的PHP 144
13.1.1 Zend框架和Zend优化器 144
13.1.2 找到最新版本的PHP 148
13.1.3 使用Suhosin补丁和扩展 149
13.2 使用PHP和Apache内置的安全特性 149
13.2.1 safe mode 149
13.2.2 SuEXEC 150
13.3 使用ModSecurity 150
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 安装和配置PowerFuzzer 160
15.2.2 使用PowerFuzzer 162
15.3 测试工具集 165
15.3.1 下载CAL9000 166
15.3.2 使用CAL9000 167
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
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《虚拟流域环境理论技术研究与应用》冶运涛蒋云钟梁犁丽曹引等编著 2019
- 《当代翻译美学的理论诠释与应用解读》宁建庚著 2019
- 《第一性原理方法及应用》李青坤著 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《教师教育系列教材 心理学原理与应用 第2版 视频版》郑红,倪嘉波,刘亨荣编;陈冬梅责编 2020
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019