CD资源提供的《Web安全开发指南》掌握白帽子的Web安全技能[pdf]下载地址来源于网络分享,网络资源均有时效性,请尽快下载《Web安全开发指南》掌握白帽子的Web安全技能[pdf],或保存《Web安全开发指南》掌握白帽子的Web安全技能[pdf]到自己的网盘避免资源失效。
编辑推荐——PDF电子书
Web应用程序的安全性至关重要,病毒、DDoS攻击、中间人攻击、安全漏洞等多种威胁无时无刻不在,任何一种安全事故都可能造成灾难性后果。无论是前端开发人员、网页设计师、用户体验设计师,还是开发运营人员、产品经理、软件工程师,都需具备一定的安全技能,承担起保障Web应用程序及其数据安全的责任。 本书为以上人员提供了具体的Web安全建议以及安全编程示例。书中内容共分为五个部分,分别展示了如何对抗病毒、DDos攻击、安全漏洞和其他恶意入侵,适用于所有平台。 - 为公司制订一份顾及zui新设备以及用户需求的安全计划 - 安全开发技巧实践展示,以及如何有效利用来自库、API和微服务的第三方代码 - 使用沙盒技术、内部和第三方测试技术,像黑客一样思考 - 确定何时以及如何更新应用程序软件,制定维护周期 - 学习如何有效地跟踪安全威胁,确定公司的安全培训需求
内容简介——PDF电子书
本书分为5大部分,共17章,详细介绍了Web安全开发的必备知识,旨在让前端开发人员、设计师、产品经理等前端开发相关人士了解新形势下的安全技能,涉及从最新的智能手机到老旧的台式计算机等各种设备,并且不限定平台。具体内容包括:制订安全计划,运用成功的编码实践,创建有用及高效的测试策略,实现维护周期,查找安全资源。
作者简介——PDF电子书
John Paul Mueller,技术编辑、自由作家,写过99本书和600多篇文章,主题涵盖数据库管理、编程、网络技术、人工智能。为Data Based Advisor和Coast Compute两本杂志提供技术编辑服务,帮助60多位作者完善了手稿。
目录——PDF电子书
前言 xv
第一部分制订安全计划
第1章 定义应用环境2
1.1明确Web 应用威胁3
1.2理解软件安全保障6
1.2.1考虑OSSAP7
1.2.2定义SSA 的要求8
1.2.3对数据和资源分类9
1.2.4进行必要的分析9
1.3探究与语言相关的问题12
1.3.1定义HTML 的关键问题12
1.3.2定义CSS 的关键问题13
1.3.3定义JavaScript 的关键问题13
1.4考虑端点的防御要素14
1.4.1预防安全漏洞14
1.4.2检测安全漏洞15
1.4.3修复受损的软件16
1.5处理云存储16
1.6使用外部代码和资源17
1.6.1定义库的使用18
1.6.2定义API 的使用19
1.6.3定义微服务的使用20
1.6.4访问外部数据21
1.7允许他人访问22
第2章 迎合用户需求与期望24
2.1从用户的视角看待应用程序24
2.2考虑自带设备的问题25
2.2.1理解基于Web 的应用程序的安全性26
2.2.2考虑原生应用的问题27
2.2.3使用定制化浏览器27
2.2.4验证代码兼容性问题29
2.2.5处理几乎连续的设备更新31
2.3设计密码的可选方案32
2.3.1使用口令33
2.3.2使用生物识别的方案33
2.3.3依靠钥匙卡35
2.3.4依靠USB key36
2.3.5实现令牌策略36
2.4聚焦用户期望37
2.4.1让应用程序易于使用37
2.4.2让应用程序快速运行37
2.4.3创建可靠的环境38
2.4.4客观看待安全性38
第3章 获取第三方帮助39
3.1发现第三方安全解决方案39
3.2考虑云安全方案41
3.2.1理解数据仓库42
3.2.2处理文件共享问题43
3.2.3考虑云存储46
3.3选择产品类型47
3.3.1使用库47
3.3.2访问API48
3.3.3考虑微服务49
第二部分运用成功的编码实践
第4章 开发成功的界面52
4.1评估UI53
4.1.1创建简洁的界面53
4.1.2使界面灵活56
4.1.3提供辅助功能58
4.1.4定义可访问性问题59
4.2提供受控制的选择61
4.3选择UI 的解决方案级别65
4.3.1实现标准的HTML 控件65
4.3.2使用CSS 控件65
4.3.3用JavaScript 创建控件67
4.4校验输入68
4.4.1只允许特定的输入68
4.4.2查找鬼祟的输入69
4.4.3请求新的输入69
4.4.4使用客户端和服务器端校验70
4.5期待意外71
第5章 构建可靠的代码72
5.1区分可靠性和安全性73
5.1.1定义可靠性和安全性的角色73
5.1.2避免可靠代码中的安全漏洞76
5.1.3聚焦应用程序的功能77
5.2开发团队协议77
5.3创建经验教训的反馈回路80
5.4考虑成套解决方案的问题81
5.4.1处理外部库82
5.4.2处理外部API83
5.4.3使用框架85
5.4.4调用微服务87
第6章 包含库88
6.1考虑库的使用89
6.1.1用库增强CSS89
6.1.2用库与HTML 交互91
6.1.3用库扩展JavaScript93
6.2区分内部存储库和外部存储库95
6.3定义库带来的安全威胁95
6.3.1启用严格模式97
6.3.2开发CSP99
6.4安全地包含库100
6.4.1充分研究库101
6.4.2精确定义库的使用101
6.4.3保持库的小规模和内容聚焦101
6.4.4执行必需的测试102
6.5区分库和框架103
第7章 慎用API105
7.1区分API 和库106
7.1.1考虑流行速度上的差异106
7.1.2区分用法上的差异107
7.2用API 扩展JavaScript108
7.2.1定位合适的API108
7.2.2创建简单示例109
7.3定义API 带来的安全威胁113
7.3.1MailPoet 毁了你的好声誉113
7.3.2开发阅后即焚的图片114
7.3.3使用“找回我的iPhone”却丢了手机114
7.3.4Heartbleed 泄露你最重要的信息115
7.3.5遭受Shellshock 攻击115
7.4通过JavaScript 安全访问API116
7.4.1验证API 的安全性116
7.4.2测试输入和输出117
7.4.3保持数据的局部性和安全性117
7.4.4防御性编码117
第8章 考虑使用微服务118
8.1定义微服务119
8.1.1详述微服务的特点119
8.1.2区分微服务与库120
8.1.3区分微服务与API120
8.1.4考虑微服务的策略120
8.2用JavaScript 调用微服务121
8.2.1理解通信中REST 的角色122
8.2.2用JSON 传输数据123
8.2.3用Node.js 和Seneca 创建微服务124
8.3定义微服务带来的安全威胁126
8.3.1缺少一致性126
8.3.2考虑虚拟机的角色126
8.3.3使用JSON 进行数据传输127
8.3.4定义传输层的安全128
8.4创建可替换的微服务路径129
第三部分创建有用及高效的测试策略
第9章 像黑客一样思考132
9.1定义Web 安全扫描的需求132
9.2构建测试系统136
9.2.1考虑测试系统的使用136
9.2.2接受必需的训练136
9.2.3创建正确的环境137
9.2.4使用虚拟机137
9.2.5获取工具138
9.2.6配置系统138
9.2.7恢复系统139
9.3定义最常见的漏洞源139
9.3.1避免SQL 注入攻击140
9.3.2理解跨站脚本攻击141
9.3.3解决拒绝服务攻击问题142
9.3.4去除可预测的资源定位142
9.3.5克服无意的信息泄露143
9.4在BYOD 环境中进行测试143
9.4.1配置远程访问区域144
9.4.2检查跨应用程序的攻击144
9.4.3处理真正古老的设备和软件145
9.5依靠用户测试145
9.5.1让用户横冲直撞146
9.5.2开发可重现的步骤147
9.5.3让用户发声147
9.6使用外部的安全测试人员148
9.6.1考虑渗透测试公司148
9.6.2管理项目149
9.6.3覆盖要点149
9.6.4获取报告149
第10章 创建API 安全区域151
10.1理解API 安全区域的概念152
10.2定义API 安全区域的需求153
10.2.1确保API 可以工作153
10.2.2实现快速开发153
10.2.3证明最佳的集成154
10.2.4在负载情况下验证API 的表现158
10.2.5使API 远离黑客159
10.3用API 沙盒进行开发159
10.3.1使用现成的解决方案161
10.3.2使用其他供应商的沙盒162
10.4考虑虚拟环境164
10.4.1定义虚拟环境164
10.4.2区分虚拟环境和沙盒164
10.4.3实现虚拟化165
10.4.4依靠应用程序虚拟化165
第11章 检查库和API 的漏洞167
11.1创建测试计划168
11.1.1考虑目的和目标168
11.1.2测试内部库175
11.1.3测试内部API175
11.1.4测试外部库175
11.1.5测试外部API176
11.1.6扩展测试到微服务176
11.2单独测试库和API177
11.2.1为库创建测试框架177
11.2.2为API 创建测试脚本178
11.2.3将测试策略扩展到微服务178
11.2.4开发响应策略178
11.3执行集成测试179
11.4测试与语言相关的问题180
11.4.1设计针对HTML 问题的测试180
11.4.2设计针对CSS 问题的测试181
11.4.3设计针对JavaScript 问题的测试181
第12章 使用第三方测试184
12.1找到第三方测试服务185
12.1.1定义聘请第三方的理由185
12.1.2考虑测试服务的范围186
12.1.3确保第三方是合法的188
12.1.4面试第三方188
12.1.5对测试的搭建进行测试188
12.2创建测试计划189
12.2.1指明第三方在测试中的目的189
12.2.2创建书面的测试计划189
12.2.3枚举测试输出和报告的要求190
12.2.4考虑测试需求190
12.3实施测试计划190
12.3.1确定公司参与测试的程度191
12.3.2开始测试过程191
12.3.3执行必需的测试监控191
12.3.4处理意外的测试问题192
12.4使用结果报告192
12.4.1与第三方讨论报告输出192
12.4.2向公司展示报告193
12.4.3根据测试建议采取行动193
第四部分实现维护周期
第13章 明确定义升级周期196
13.1制订详细的升级周期计划196
13.1.1寻找升级198
13.1.2确定升级的要求198
13.1.3定义升级的临界点200
13.1.4检查升级的问题201
13.1.5创建测试场景202
13.1.6实施变更203
13.2制订升级测试计划203
13.2.1执行所需的预测试204
13.2.2执行所需的集成测试204
13.3将升级移到生产环境205
第14章 考虑更新选项207
14.1区分升级和更新208
14.2确定何时更新209
14.2.1处理库的更新209
14.2.2处理API 和微服务的更新210
14.2.3接受自动更新211
14.3更新语言套件212
14.3.1创建语言支持清单212
14.3.2获得可靠的语言专家213
14.3.3验证与语言相关的提示符能否在应用程序中起效214
14.3.4确保数据以正确的格式呈现214
14.3.5定义语言支持测试的特殊要求214
14.4执行紧急更新215
14.4.1尽可能避免紧急情况215
14.4.2组建快速响应团队215
14.4.3执行简化的测试216
14.4.4制订持久的更新计划216
14.5制订更新测试计划216
第15章 考虑报告的需要218
15.1使用报告以做出改变219
15.1.1避免无用的报告219
15.1.2安排时间为升级和更新做出报告220
15.1.3使用自动生成的报告221
15.1.4使用定制的报告221
15.1.5创建一致的报告222
15.1.6使用报告执行特定的应用任务223
15.2创建内部报告223
15.2.1确定使用哪些数据源223
15.2.2指定报告的使用224
15.3依靠外部生成的报告225
15.3.1从第三方获取完整的报告225
15.3.2从原始数据创建报告225
15.3.3保持内部数据安全225
15.4提供用户反馈226
15.4.1获取用户反馈226
15.4.2确定用户反馈的可用性227
第五部分查找安全资源
第16章 跟踪当前的安全威胁230
16.1发现安全威胁信息的来源231
16.1.1阅读与安全相关的专业文章231
16.1.2查看安全网站232
16.1.3获取顾问的意见234
16.2避免信息泛滥235
16.3为基于威胁的升级制订计划236
16.3.1预判不需要采取任何行动的情况236
16.3.2决定升级还是更新236
16.3.3定义升级计划238
16.4为基于威胁的更新制订计划238
16.4.1验证更新是否可解决威胁239
16.4.2确定威胁是否紧急240
16.4.3定义更新计划240
16.4.4要求来自第三方的更新240
第17章 获取必需的培训241
17.1制订内部的安全培训计划242
17.1.1定义所需的培训242
17.1.2设置合理的目标243
17.1.3使用内部培训师243
17.1.4监控结果244
17.2获取第三方对开发人员的培训245
17.2.1指定培训的要求246
17.2.2为公司聘请第三方培训师247
17.2.3使用在线学校247
17.2.4依靠培训中心248
17.2.5利用本地的学院和大学248
17.3确保用户有安全意识249
17.3.1制定专门的安全培训249
17.3.2结合书面指南进行培训249
17.3.3创建并使用替代的安全提醒250
17.3.4进行培训有效性检查250
链接:
隐藏内容,请登录后查看