科技
类型
5.3
豆瓣评分
可以朗读
语音朗读
239千字
字数
2017-06-01
发行日期
展开全部
主编推荐语
为你详细介绍前端安全的必备知识。
内容简介
本书分5大部分、17个章节,详细介绍前端安全的必备知识,旨在让前端开发人员、设计师、产品经理等前端开发相关人士了解新形势下的安全技能,涉及从最新的智能手机到老旧的台式计算机等各种设备,并且不限定平台。具体内容包括:制定安全计划,运用成功的编码实践,创建有用又高效的测试方法,实现维护周期,定位安全资源。
目录
- 版权信息
- O'Reilly Media, Inc.介绍
- 业界评论
- 前言
- 本书预览
- 阅读须知
- 开发环境
- 本书使用的图标
- 排版约定
- 获取更多信息
- 使用代码示例
- Safari® Books Online
- 联系我们
- 致谢
- 电子书
- 第一部分 制订安全计划
- 第1章 定义应用环境
- 1.1 明确Web应用威胁
- 1.2 理解软件安全保障
- 1.2.1 考虑OSSAP
- 1.2.2 定义SSA的要求
- 1.2.3 对数据和资源分类
- 1.2.4 进行必要的分析
- 1.3 探究与语言相关的问题
- 1.3.1 定义HTML的关键问题
- 1.3.2 定义CSS的关键问题
- 1.3.3 定义JavaScript的关键问题
- 1.4 考虑端点的防御要素
- 1.4.1 预防安全漏洞
- 1.4.2 检测安全漏洞
- 1.4.3 修复受损的软件
- 1.5 处理云存储
- 1.6 使用外部代码和资源
- 1.6.1 定义库的使用
- 1.6.2 定义API的使用
- 1.6.3 定义微服务的使用
- 1.6.4 访问外部数据
- 1.7 允许他人访问
- 第2章 迎合用户需求与期望
- 2.1 从用户的视角看待应用程序
- 2.2 考虑自带设备的问题
- 2.2.1 理解基于Web的应用程序的安全性
- 2.2.2 考虑原生应用的问题
- 2.2.3 使用定制化浏览器
- 2.2.4 验证代码兼容性问题
- 2.2.5 处理几乎连续的设备更新
- 2.3 设计密码的可选方案
- 2.3.1 使用口令
- 2.3.2 使用生物识别的方案
- 2.3.3 依靠钥匙卡
- 2.3.4 依靠USB key
- 2.3.5 实现令牌策略
- 2.4 聚焦用户期望
- 2.4.1 让应用程序易于使用
- 2.4.2 让应用程序快速运行
- 2.4.3 创建可靠的环境
- 2.4.4 客观看待安全性
- 第3章 获取第三方帮助
- 3.1 发现第三方安全解决方案
- 3.2 考虑云安全方案
- 3.2.1 理解数据仓库
- 3.2.2 处理文件共享问题
- 3.2.3 考虑云存储
- 3.3 选择产品类型
- 3.3.1 使用库
- 3.3.2 访问API
- 3.3.3 考虑微服务
- 第二部分 运用成功的编码实践
- 第4章 开发成功的界面
- 4.1 评估UI
- 4.1.1 创建简洁的界面
- 4.1.2 使界面灵活
- 4.1.3 提供辅助功能
- 4.1.4 定义可访问性问题
- 4.2 提供受控制的选择
- 4.3 选择UI的解决方案级别
- 4.3.1 实现标准的HTML控件
- 4.3.2 使用CSS控件
- 4.3.3 用JavaScript创建控件
- 4.4 校验输入
- 4.4.1 只允许特定的输入
- 4.4.2 查找鬼祟的输入
- 4.4.3 请求新的输入
- 4.4.4 使用客户端和服务器端校验
- 4.5 期待意外
- 第5章 构建可靠的代码
- 5.1 区分可靠性和安全性
- 5.1.1 定义可靠性和安全性的角色
- 5.1.2 避免可靠代码中的安全漏洞
- 5.1.3 聚焦应用程序的功能
- 5.2 开发团队协议
- 5.3 创建经验教训的反馈回路
- 5.4 考虑成套解决方案的问题
- 5.4.1 处理外部库
- 5.4.2 处理外部API
- 5.4.3 使用框架
- 5.4.4 调用微服务
- 第6章 包含库
- 6.1 考虑库的使用
- 6.1.1 用库增强CSS
- 6.1.2 用库与HTML交互
- 6.1.3 用库扩展JavaScript
- 6.2 区分内部存储库和外部存储库
- 6.3 定义库带来的安全威胁
- 6.3.1 启用严格模式
- 6.3.2 开发CSP
- 6.4 安全地包含库
- 6.4.1 充分研究库
- 6.4.2 精确定义库的使用
- 6.4.3 保持库的小规模和内容聚焦
- 6.4.4 执行必需的测试
- 6.5 区分库和框架
- 第7章 慎用API
- 7.1 区分API和库
- 7.1.1 考虑流行速度上的差异
- 7.1.2 区分用法上的差异
- 7.2 用API扩展JavaScript
- 7.2.1 定位合适的API
- 7.2.2 创建简单示例
- 7.3 定义API带来的安全威胁
- 7.3.1 MailPoet毁了你的好声誉
- 7.3.2 开发阅后即焚的图片
- 7.3.3 使用“找回我的iPhone”却丢了手机
- 7.3.4 Heartbleed泄露你最重要的信息
- 7.3.5 遭受Shellshock攻击
- 7.4 通过JavaScript安全访问API
- 7.4.1 验证API的安全性
- 7.4.2 测试输入和输出
- 7.4.3 保持数据的局部性和安全性
- 7.4.4 防御性编码
- 第8章 考虑使用微服务
- 8.1 定义微服务
- 8.1.1 详述微服务的特点
- 8.1.2 区分微服务与库
- 8.1.3 区分微服务与API
- 8.1.4 考虑微服务的策略
- 8.2 用JavaScript调用微服务
- 8.2.1 理解通信中REST的角色
- 8.2.2 用JSON传输数据
- 8.2.3 用Node.js和Seneca创建微服务
- 8.3 定义微服务带来的安全威胁
- 8.3.1 缺少一致性
- 8.3.2 考虑虚拟机的角色
- 8.3.3 使用JSON进行数据传输
- 8.3.4 定义传输层的安全
- 8.4 创建可替换的微服务路径
- 第三部分 创建有用及高效的测试策略
- 第9章 像黑客一样思考
- 9.1 定义Web安全扫描的需求
- 9.2 构建测试系统
- 9.2.1 考虑测试系统的使用
- 9.2.2 接受必需的训练
- 9.2.3 创建正确的环境
- 9.2.4 使用虚拟机
- 9.2.5 获取工具
- 9.2.6 配置系统
- 9.2.7 恢复系统
- 9.3 定义最常见的漏洞源
- 9.3.1 避免SQL注入攻击
- 9.3.2 理解跨站脚本攻击
- 9.3.3 解决拒绝服务攻击问题
- 9.3.4 去除可预测的资源定位
- 9.3.5 克服无意的信息泄露
- 9.4 在BYOD环境中进行测试
- 9.4.1 配置远程访问区域
- 9.4.2 检查跨应用程序的攻击
- 9.4.3 处理真正古老的设备和软件
- 9.5 依靠用户测试
- 9.5.1 让用户横冲直撞
- 9.5.2 开发可重现的步骤
- 9.5.3 让用户发声
- 9.6 使用外部的安全测试人员
- 9.6.1 考虑渗透测试公司
- 9.6.2 管理项目
- 9.6.3 覆盖要点
- 9.6.4 获取报告
- 第10章 创建API安全区域
- 10.1 理解API安全区域的概念
- 10.2 定义API安全区域的需求
- 10.2.1 确保API可以工作
- 10.2.2 实现快速开发
- 10.2.3 证明最佳的集成
- 10.2.4 在负载情况下验证API的表现
- 10.2.5 使API远离黑客
- 10.3 用API沙盒进行开发
- 10.3.1 使用现成的解决方案
- 10.3.2 使用其他供应商的沙盒
- 10.4 考虑虚拟环境
- 10.4.1 定义虚拟环境
- 10.4.2 区分虚拟环境和沙盒
- 10.4.3 实现虚拟化
- 10.4.4 依靠应用程序虚拟化
- 第11章 检查库和API的漏洞
- 11.1 创建测试计划
- 11.1.1 考虑目的和目标
- 11.1.2 测试内部库
- 11.1.3 测试内部API
- 11.1.4 测试外部库
- 11.1.5 测试外部API
- 11.1.6 扩展测试到微服务
- 11.2 单独测试库和API
- 11.2.1 为库创建测试框架
- 11.2.2 为API创建测试脚本
- 11.2.3 将测试策略扩展到微服务
- 11.2.4 开发响应策略
- 11.3 执行集成测试
- 11.4 测试与语言相关的问题
- 11.4.1 设计针对HTML问题的测试
- 11.4.2 设计针对CSS问题的测试
- 11.4.3 设计针对JavaScript问题的测试
- 第12章 使用第三方测试
- 12.1 找到第三方测试服务
- 12.1.1 定义聘请第三方的理由
- 12.1.2 考虑测试服务的范围
- 12.1.3 确保第三方是合法的
- 12.1.4 面试第三方
- 12.1.5 对测试的搭建进行测试
- 12.2 创建测试计划
- 12.2.1 指明第三方在测试中的目的
- 12.2.2 创建书面的测试计划
- 12.2.3 枚举测试输出和报告的要求
- 12.2.4 考虑测试需求
- 12.3 实施测试计划
- 12.3.1 确定公司参与测试的程度
- 12.3.2 开始测试过程
- 12.3.3 执行必需的测试监控
- 12.3.4 处理意外的测试问题
- 12.4 使用结果报告
- 12.4.1 与第三方讨论报告输出
- 12.4.2 向公司展示报告
- 12.4.3 根据测试建议采取行动
- 第四部分 实现维护周期
- 第13章 明确定义升级周期
- 13.1 制订详细的升级周期计划
- 13.1.1 寻找升级
- 13.1.2 确定升级的要求
- 13.1.3 定义升级的临界点
- 13.1.4 检查升级的问题
- 13.1.5 创建测试场景
- 13.1.6 实施变更
- 13.2 制订升级测试计划
- 13.2.1 执行所需的预测试
- 13.2.2 执行所需的集成测试
- 13.3 将升级移到生产环境
- 第14章 考虑更新选项
- 14.1 区分升级和更新
- 14.2 确定何时更新
- 14.2.1 处理库的更新
- 14.2.2 处理API和微服务的更新
- 14.2.3 接受自动更新
- 14.3 更新语言套件
- 14.3.1 创建语言支持清单
- 14.3.2 获得可靠的语言专家
- 14.3.3 验证与语言相关的提示符能否在应用程序中起效
- 14.3.4 确保数据以正确的格式呈现
- 14.3.5 定义语言支持测试的特殊要求
- 14.4 执行紧急更新
- 14.4.1 尽可能避免紧急情况
- 14.4.2 组建快速响应团队
- 14.4.3 执行简化的测试
- 14.4.4 制订持久的更新计划
- 14.5 制订更新测试计划
- 第15章 考虑报告的需要
- 15.1 使用报告以做出改变
- 15.1.1 避免无用的报告
- 15.1.2 安排时间为升级和更新做出报告
- 15.1.3 使用自动生成的报告
- 15.1.4 使用定制的报告
- 15.1.5 创建一致的报告
- 15.1.6 使用报告执行特定的应用任务
- 15.2 创建内部报告
- 15.2.1 确定使用哪些数据源
- 15.2.2 指定报告的使用
- 15.3 依靠外部生成的报告
- 15.3.1 从第三方获取完整的报告
- 15.3.2 从原始数据创建报告
- 15.3.3 保持内部数据安全
- 15.4 提供用户反馈
- 15.4.1 获取用户反馈
- 15.4.2 确定用户反馈的可用性
- 第五部分 查找安全资源
- 第16章 跟踪当前的安全威胁
- 16.1 发现安全威胁信息的来源
- 16.1.1 阅读与安全相关的专业文章
- 16.1.2 查看安全网站
- 16.1.3 获取顾问的意见
- 16.2 避免信息泛滥
- 16.3 为基于威胁的升级制订计划
- 16.3.1 预判不需要采取任何行动的情况
- 16.3.2 决定升级还是更新
- 16.3.3 定义升级计划
- 16.4 为基于威胁的更新制订计划
- 16.4.1 验证更新是否可解决威胁
- 16.4.2 确定威胁是否紧急
- 16.4.3 定义更新计划
- 16.4.4 要求来自第三方的更新
- 第17章 获取必需的培训
- 17.1 制订内部的安全培训计划
- 17.1.1 定义所需的培训
- 17.1.2 设置合理的目标
- 17.1.3 使用内部培训师
- 17.1.4 监控结果
- 17.2 获取第三方对开发人员的培训
- 17.2.1 指定培训的要求
- 17.2.2 为公司聘请第三方培训师
- 17.2.3 利用网络学校
- 17.2.4 依靠培训中心
- 17.2.5 利用本地的学院和大学
- 17.3 确保用户有安全意识
- 17.3.1 制订专门的安全培训
- 17.3.2 结合书面指南进行培训
- 17.3.3 创建并使用替代的安全提醒
- 17.3.4 进行培训有效性检查
- 关于作者
- 关于封面
- 看完了
展开全部
出版方
人民邮电出版社·图灵出品
图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。