编写安全的移动应用程序——基于PHP和JavaScript技术
全新正版 极速发货
¥
96.83
6.5折
¥
149
全新
仅1件
作者[美]J.D.格拉瑟(J.D.Glaser) 著 吴骅 译
出版社清华大学出版社
ISBN9787302588054
出版时间2021-09
装帧平装
开本其他
定价149元
货号1202518560
上书时间2024-05-25
商品详情
- 品相描述:全新
- 商品描述
-
目录
目 录
部分
章 概述3
1.1 理解安全的Web开发3
1.1.1 适用读者3
1.1.2 本书未涉及的内容4
1.1.3 背景知识4
1.1.4 安全工具5
1.1.5 在项目间创建一致性的可复用代码5
1.2 基于HTML5、AJAX和jQuery Mobile的移动应用程序5
1.3 移动应用程序—社交混搭5
1.3.1 客户端技术6
1.3.2 客户端应用程序布局6
1.3.3 服务器应用程序6
1.4 安全措施的演变6
1.4.1 SQL注入和CSRF7
1.4.2 输出上下文攻击7
1.4.3 HTML5新技术8
1.4.4 实践与漏洞8
1.4.5 安全扩展插件8
1.4.6 信息缺失8
1.4.7 一致性缺失9
1.5 Web应用程序安全的新思路9
第2章 Web应用程序攻击界面15
2.1 攻击途径15
2.2 常见威胁16
2.2.1 SQL注入16
2.2.2 跨站点脚本17
2.2.3 跨站点请求伪造18
2.2.4 会话劫持18
2.3 保护输入和输出流19
2.3.1 GET请求19
2.3.2 POST请求20
2.3.3 Cookie数据21
2.3.4 会话固定21
2.3.5 跨站点请求伪造21
2.4 输入过滤和输出转义的理论知识25
2.4.1 输入验证26
2.4.2 输入过滤26
2.4.3 输出转义27
2.4.4 数据的显示位置28
2.5 OWASP XSS Prevention Rules28
第3章 PHP安全反模式37
3.1 反模式37
3.2 不使用内容安全策略反模式进行设计38
3.3 单一尺寸适合所有的反模式38
3.4 错误的反模式38
3.4.1 经验式反模式39
3.4.2 关键数据类型的理解和分析40
3.4.3 单一数据类型反模式40
3.5 全部输入的HTTP数据均为字符串44
3.5.1 类型验证46
3.5.2 输入内容与输出内容相同48
3.5.3 假定的“干净”数据49
3.5.4 mysql_real_escape_string()的错误使用方式49
3.5.5 过滤、转义和编码50
3.5.6 单一输出上下文51
3.5.7 缺乏规划51
3.5.8 一致性缺失52
3.5.9 缺少应有的测试52
3.5.10 参数遗漏52
3.6 设计实践55
3.6.1 HTML和PHP代码的分离55
3.6.2 过多的数据库函数调用55
3.6.3 错误的过滤机制56
3.6.4 过多的引号57
3.6.5 原始请求变量作为应用程序变量57
3.6.6 直接URL输入58
3.6.7 错误管理操作59
3.6.8 加密操作59
3.6.9 Cookie过期60
3.6.10 会话管理61
3.7 消除反模式:模式、测试、自动化61
第4章 PHP基本安全63
4.1 一致的UTF-8字符集63
4.1.1 数据库中的UTF-864
4.1.2 PHP应用程序中的UTF-864
4.1.3 客户浏览器中的UTF-865
4.2 清理安全数据65
4.2.1 输入验证—尺寸和类型65
4.2.2 转义输出—考查上下文65
4.2.3 数据库访问模式66
4.2.4 应用程序秘密位置模式66
4.2.5 错误处理模式66
4.2.6 错误的日志处理模式67
4.2.7 身份验证67
4.2.8 授权模式67
4.2.9 可接受的白名单输入67
4.3 最佳实践方案小结68
4.3.1 架构应用程序字符集68
4.3.2 架构HTTP请求模式68
4.3.3 架构HTTP Cookie应用69
4.3.4 架构输入验证69
4.3.5 架构输出转义69
4.3.6 架构会话管理70
4.3.7 保护机密文件/保护包含的文件70
4.3.8 保护用户密码70
4.3.9 保护用户会话数据70
4.3.10 防护CSRF攻击71
4.3.11 防护SQL注入攻击71
4.3.12 防护XSS攻击71
4.3.13 防护文件系统攻击71
4.3.14 相应的错误管理机制71
4.4 PHP的OWASP推荐方案72
4.4.1 检查表72
4.4.2 附加的PHP安全检查表73
4.4.3 禁用危险的PHP函数74
第5章 PHP安全工具概览75
5.1 对象语言75
5.1.1 抽象类、接口、外观、模板、策略、工厂和访问者75
5.1.2 DRY78
5.2 本地函数支持79
5.2.1 编码函数79
5.2.2 DRY强制函数81
5.2.3 类型强制函数82
5.2.4 过滤器函数83
5.2.5 移动函数86
5.2.6 加密和哈希函数87
5.2.7 现代加密87
5.2.8 现代哈希方法89
5.2.9 现代salt机制和随机机制89
5.2.10 HTML模板支持89
5.2.11 内联定界符函数90
5.3 最佳实践方案92
5.3.1 尽可能使用整数值92
5.3.2 使用类型强制93
5.3.3 强制字符串大小和数字范围93
5.3.4 在过滤前剪裁字符串94
5.3.5 保持较小的字符串94
5.3.6 要避免的问题94
5.4 PDO预处理语句96
5.5 弃用的安全函数97
第6章 基于UTF-8的PHP和MySQL99
6.1 UTF-899
6.1.1 UTF-8的优缺点99
6.1.2 UTF-8的安全性100
6.2 完整的PHP UTF-8设置100
6.2.1 UTF-8 MySQL数据库和表创建100
6.2.2 UTF-8 PDO客户端连接102
6.2.3 手动UTF-8 PDO/MySQL连接103
6.2.4 PHP UTF-8初始化和安装103
6.3 UTF-8浏览器设置104
6.3.1 头设置104
6.3.2 元标签设置104
6.3.3 表单设置105
6.4 PHP UTF-8多字节函数105
6.4.1 UTF-8输入验证函数105
6.4.2 UTF-8字符串函数106
6.4.3 UTF-8输出函数107
6.4.4 UTF-8邮件108
6.5 PHPUnit测试中的UTF-8配置109
6.5.1 测试PHP内部编码109
6.5.2 测试PHP输出编码109
6.5.3 断言UTF-8配置的PHPUnit Test类110
第7章 项目布局模板115
7.1 应用程序中的相似性115
7.1.1 项目布局应采用一致性方式进行处理115
7.1.2 选择查询封装器118
7.1.3 HTML静态资源的分离119
7.2 完整的注释文件120
第8章 关注点分离121
8.1 什么是关注点分离121
8.2 保持HTML为HTML122
8.3 令PHP远离HTML122
8.4 令JavaScript远离HTML124
8.5 内容安全性策略126
8.6 HTML中的ID和类127
8.7 小结128
第9章 PHP和PDO129
9.1 PDO UTF-8连接130
9.2 MySQL UTF-8和表创建131
9.3 PDO预处理语句132
9.3.1 PDO命名参数示例133
9.3.2 PDO未命名参数示例133
9.3.3 PDO类对象示例135
9.4 选择数据并置入HTML和URL上下文135
9.5 引用值和数据库类型转换138
9.5.1 PDO手工引用示例139
9.5.2 PDO和WHERE IN语句139
9.6 白名单机制和PDO列名引用140
9.7 小结141
0章 模板策略模式143
10.1 模板模式强制执行流程143
10.1.1 账户注册模板143
10.1.2 账户注册模板—激活145
10.2 输出转义的策略模式147
10.2.1 转义策略类147
10.2.2 改进的转义策略类150
10.3 Cleaner类153
10.3.1 测试Cleaner类158
10.3.2 Cleaner::getKey()验证应用示例159
1章 现代PHP加密技术161
11.1 使用MCrypt进行双向加密161
11.2 利用Blowfish加密哈希密码165
2章 异常和错误处理167
12.1 配置PHP错误环境168
12.1.1 安全的php.ini和错误日志文件168
12.1.2 错误选项简介169
12.1.3 生产环境下的php.ini错误配置170
12.1.4 开发环境下的php.ini错误配置170
12.1.5 PHP错误级别常量171
12.2 异常处理机制172
12.3 捕获所有错误和异常177
12.3.1 将错误转换为异常177
12.3.2 错误处理函数的规范177
12.3.3 处理程序的返回值178
12.4 ErrorManager类178
12.5 利用register_shutdown_function()处理致命错误179
第2部分
3章 安全的会话管理185
13.1 SSL登录页面185
13.1.1 安全会话管理简介186
13.1.2 安全会话管理检查表186
13.1.3 检查表的详细内容187
13.1.4 设置配置内容192
13.1.5 监控会话篡改194
13.1.6 检测用户代理的更改—篡改防护的最佳实践方案195
13.2 通过SSL强制页面请求196
13.2.1 SSL重定向196
13.2.2 协议相关链接196
4章 安全的会话存储199
14.1 PHP默认会话存储199
14.1.1 会话存储的生命周期200
14.1.2 会话锁201
14.1.3 AJAX和会话锁201
14.2 会话管理配置201
14.2.1 在session_start()调用前配置安全项202
14.2.2 正确地销毁会话205
14.3 加密会话存储206
14.3.1 通过MySQL加密会话存储206
14.3.2 在MySQL中创建自定义会话处理程序206
14.3.3 SecureSessionPDO类208
14.3.4 评论和决策时间216
14.3.5 类成员函数的细节内容217
14.3.6 通过文件系统加密会话存储228
14.3.7 SecureSessionFile类229
14.3.8 SecureSessionFile类的细节内容234
5章 安全的表单和账户注册243
15.1 安全的用户注册和登录处理243
15.2 SSL上的安全表单登录页面245
15.3 安全的表单nonce—防止CSRF245
15.4 NonceTracker类246
15.4.1 NonceTracker类的详细信息246
15.4.2 NonceTracker类的具体解释248
15.5 表单输入验证250
15.5.1 注册表单252
15.5.2 注册表单的细节内容256
15.5.3 用户密码的双重加密258
15.6 账户管理类261
15.6.1 AccountManager类细节内容和授权检测266
15.6.2 电子邮件验证和激活系统267
15.6.3 基于Blowfish轮数的加密强度273
15.6.4 安全的密码请求链接275
15.6.5 权限提升后的重新授权276
15.7 SessionManager类277
15.7.1 SessionManagement类的详细内容280
15.7.2 基于essionManager的安全注销282
15.8 权限提升保护系统283
15.9 安全的登录285
15.9.1 安全的登录表单285
15.9.2 安全的登录表单细节287
15.10 通过身份验证保护页面290
15.11 安全的注销页面290
15.12 安全的RememberMe特性292
6章 安全的客户端服务器表单验证297
16.1 PHP UTF-8输入验证297
16.1.1 服务器UTF-8验证297
16.1.2 通过RegEx验证UTF-8名称和电子邮件298
16.1.3 电子邮件地址的清除工作300
16.2 PREG301
16.2.1 服务器端的正则表达式301
16.2.2 基于正则表达式的JavaScript验证307
16.2.3 基于正则表达式的jQuery验证308
16.3 jQuery密码强度计311
16.4 JavaScript和jQuery转义和过滤313
16.4.1 利用innerText替换innerHTML315
16.4.2 嵌入式HTML超链接—innerHTML中的问题315
16.4.3 不安全的JavaScript函数318
16.5 防止双重表单提交318
16.5.1 表单处理的Post-Redirect-Get模式319
16.5.2 PRG模式320
16.5.3 PRG指令321
16.5.4 跟踪表单标记以防止重复提交323
16.6 控制表单页面缓存和页面过期325
16.6.1 主缓存-控制设置326
16.6.2 微软IE扩展327
16.6.3 AJAX GET请求的时间戳机制327
16.6.4 构建安全的GET请求URL327
7章 安全的文件上传机制329
17.1 基本原则329
17.2 基于数据库的安全的文件上传机制331
8章 安全的JSON请求339
18.1 构建安全的JSON响应339
18.1.1 正确和错误的JSON339
18.1.2 正确的JSON结构依赖于数组结构340
18.1.3 利用PDO记录构造安全的数组342
18.2 在PHP中发送和接收JSON343
18.2.1 从PHP发送JSON343
18.2.2 在PHP中接收JSON347
18.3 利用JavaScript/jQuery安全地解析JSON347
18.3.1 jQuery JSON调用348
18.3.2 POST和解析JSON响应示例349
第3部分
9章 Google Maps、YouTube和jQuery Mobile353
19.1 代码构建353
19.2 在Google Map InfoWindows中设置视频354
19.3 生成InfoWindow Marker354
19.3.1 HTML和jQuery Mobile布局355
19.3.2 关注点分离357
19.3.3 HTML片段描述358
19.3.4 YouTube元素描述359
19.3.5 JavaScript文件:gmap.js360
19.3.6 基于可播放视频的InfoWindow Marker366
19.4 Map Marker数据库表370
19.5 数据库类GMapData371
19.5.1 处理标记373
19.5.2 生成标记373
19.5.3 插入和更新标记376
19.6 准备安全的JSON数据380
第20章 Twitter身份验证和SSL cURL385
20.1 基于PHP的Twitter385
20.2 TweetFetcher类386
20.3 通过TweetFetcher读取tweet391
20.3.1 获取Twitter oAuth令牌391
20.3.2 针对cURL设置SSL身份验证392
20.3.3 从时间轴上检索最新的tweet393
20.3.4 创建和过滤纯文本中的超链接393
20.4 过滤不良的tweet396
20.5 使用TweetFetcher397
第21章 安全的AJAX购物车401
21.1 移动商店402
21.1.1 向购物车中添加商品405
21.1.2 从购物车中移除商品413
21.2 利用PayPal购物414
21.2.1 开始PayPal事务415
21.2.2 安全地向PayPal付款419
21.2.3 完成PayPal购买行为421
21.3 小结426
第22章 常见的Facebook漏洞点427
22.1 通过PDO保存Facebook实时更新427
22.2 反射JSON坐标428
22.3 反射消息429
22.4 反射URL429
22.5 JavaScript和jQuery过滤器429
22.6 JSONP预防措施431
参考文献433
附录435
在线资源435
理解编码器背后的正则表达式435
根据最新的安全警告检查HTML头436
支持网站436
推荐读物437
内容摘要
《编写安全的移动应用程序—基于PHP和JavaScript技术》详细阐述了与编写安全的移动应用程序相关的基本解决方案,主要包括Web应用程序攻击界面,PHP安全反模式,PHP基本安全,PHP安全工具概览,基于UTF-8的PHP和MySQL,项目布局模板,关注点分离,PHP和PDO,模板策略模式,现代PHP加密技术,异常和错误处理,安全的会话管理,安全的会话存储,安全的表单和账户注册,安全的客户端服务器表单验证,安全的文件上传机制,安全的JSON请求,Google Maps、YouTube和jQuery Mobile,Twitter身份验证和SSL cURL,安全的AJAX购物车,常见的Facebook漏洞点等内容。此外,本书还提供了相应的示例,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
主编推荐
每一名开发人员都需要制订相关的决策,包括代码的类型和代码的质量,并判断下一行代码是否更加安全、具有弹性、更加坚固,否则将很难避免遭受攻击的命运。在将代码发布至GitHub之前,我们应仔细考虑这些问题。这些决策将很好的开发人员与一般人员区分开来。
— 没有更多了 —
以下为对购买帮助不大的评价