Web开发的身份和数据安全

Book description

作为Web和应用开发者、设计师、工程师和创作者,我们责无旁贷,自己必须掌握身份和数据安全方面的知识。如果Web开发者不知道如何在传输过程中正确隐蔽数据,不经意间就会敞开网站的安全大门。通过这本实用的手册,你将学到为何以及如何保护用户和数据的安全。

本书深入探讨了构建保护数据和身份安全的接口所要掌握的概念、技术和编程方法论,而且兼顾可用性。你将学到如何弥补现有系统的漏洞、防御各种各样的攻击媒介,以及如何在天生不安全的环境中保障自身周全。

  • 了解Web和应用安全的现状。
  • 构建安全的密码加密方式,以及与各种密码攻击媒介斗争。
  • 创建数字指纹,在浏览器、设备和配对设备中识别用户。
  • 通过OAuth和OpenID Connect构建安全的数据传输系统。
  • 使用其他的识别方法提供第二种身份验证方式。
  • 加固Web应用,防止攻击。
  • 使用SSL/TLS及同步和异步加密创建安全的数据传输系统。

Table of contents

  1. 封面
  2. 版权页
  3. O'Reilly介绍
  4. 目录 (1/2)
  5. 目录 (2/2)
  6. 前言
    1. 排版约定
      1. Safari® Books Online
    2. 联系方式
    3. 致谢
      1. Jonathan
      2. Tim
  7. 第1章 导论
    1. 现有安全模型的问题
      1. 弱密码
      2. 为了安全牺牲可用性
      3. 不当的数据加密
    2. 最薄弱的环节:人类
      1. 单点登录
    3. 理解密码安全中的熵
      1. 随机选择的密码熵
      2. 人为选定的密码熵
    4. 区分用户名和密码在系统中的作用
    5. 保护身份的当前标准
      1. 好的和不好的安全算法
    6. 应该保护哪些数据?
      1. 账户恢复机制和社会工程
    7. 安全问题带来的问题
    8. 下一步
  8. 第2章 密码加密、哈希和加盐
    1. 静态数据和动态数据
      1. 静态数据
      2. 动态数据
    2. 密码攻击媒介
      1. 暴力攻击
      2. 使用reCAPTCHA添加验证码 (1/2)
      3. 使用reCAPTCHA添加验证码 (2/2)
      4. 字典攻击
      5. 反向查询表
      6. 彩虹表
    3. 加盐
      1. 生成随机盐值
      2. 重用盐值
      3. 盐值的长度
      4. 把盐值存储在哪里
    4. 撒胡椒
    5. 选择正确的密码哈希函数
      1. bcrypt
      2. PBKDF2
      3. scrypt
      4. 对比哈希值,验证密码
    6. 密钥延伸
    7. 重新计算哈希值
    8. 下一步
  9. 第3章 身份安全基础知识
    1. 理解不同的身份类型
      1. 社会身份
      2. 实际身份
      3. 弱身份
    2. 利用身份提升用户体验
    3. 信任区简介
    4. 浏览器指纹识别
      1. 阻碍浏览器指纹识别的配置
      2. 可识别的浏览器信息
      3. 获取浏览器细节
    5. 位置追踪
    6. 设备指纹识别(手机/平板)
    7. 设备指纹识别(蓝牙配对设备)
    8. 实现身份
  10. 第4章 通过OAuth 2和OpenID Connect 实现
    1. 身份验证和授权之间的区别
      1. 身份验证
      2. 授权
    2. OAuth和OpenID Connect是什么
      1. OAuth 2.0简介
      2. 使用OAuth 2.0处理授权
      3. OAuth 2.0权限核发类型
      4. 使用Bearer Token
      5. 使用OpenID Connect授权和验证身份
    3. OAuth 2和OAuth 1.0a之间的安全注意事项
    4. 构建一个OAuth 2.0服务器
    5. 创建Express应用
    6. 设置服务器的数据库
      1. 生成授权码和令牌
      2. ES5中Math.random()函数的官方文档
      3. 授权端点
      4. 处理令牌的存活期
      5. 处理资源请求
      6. 使用刷新令牌
      7. 处理错误
    7. 为服务器添加OpenID Connect功能
      1. ID令牌模式
      2. 修改授权端点
      3. 调整令牌端点
      4. userinfo端点
      5. 使用OpenID Connect管理会话
    8. 构建OAuth 2客户端
      1. 使用授权码
      2. 使用资源属主凭据或客户端凭据授权
    9. 为客户端添加OpenID Connect功能
      1. OpenID Connect基本流程
    10. OAuth 2.0和OpenID Connect之外
  11. 第5章 身份认证的其他方法
    1. 设备和浏览器指纹识别
    2. 双因素身份验证和n因素身份验证
      1. n因素身份验证
      2. 一次性密码
      3. 使用Authy实现双因素身份验证 (1/2)
      4. 使用Authy实现双因素身份验证 (2/2)
    3. 使用生物特征代替密码
    4. 如何评价生物特征的效果
      1. 面部识别
      2. 视网膜和虹膜扫描
      3. 静脉识别
    5. 新出现的标准
      1. FIDO Alliance
      2. Oz
      3. 区块链
      4. 小结
  12. 第6章 增强 Web 应用的安全
    1. 保护会话
      1. 会话的种类
      2. Express处理会话的方式
      3. 使用SHA-2保护密码
    2. 处理XSS
      1. XSS攻击的三种类型
      2. 测试XSS保护机制
      3. 小结
    3. CSRF攻击
      1. 使用csurf处理CSRF
    4. 有用的Node资源
      1. Lusca
      2. Helmet
      3. Node安全项目
    5. 其他减轻危害的技术
    6. 小结
  13. 第7章 数据传输安全
    1. SSL/TLS
      1. 证书验证类型和权威机构
      2. 创建供测试的自签名证书 (1/2)
      3. 创建供测试的自签名证书 (2/2)
    2. 异步加密
      1. 用例
      2. 具体示例 (1/2)
      3. 具体示例 (2/2)
      4. 异步加密的优缺点和用途
    3. 同步加密
      1. 初始向量
      2. 填充
      3. 分组加密的操作模式
      4. 使用CTR加密模式的AES
      5. 使用GCM验证加密模式的AES
      6. 同步加密的优缺点和用途
  14. 附录A GitHub 仓库
  15. 附录B 技术前提条件和要求 (1/2)
  16. 附录B 技术前提条件和要求 (2/2)
  17. 词汇表
  18. 作者介绍
  19. 封面介绍

Product information

  • Title: Web开发的身份和数据安全
  • Author(s): Jonathan LeBlanc, Tim Messerschmidt
  • Release date: January 2018
  • Publisher(s): China Electric Power Press Ltd.
  • ISBN: 9787519814205

You might also like

book

数据库系统内幕

by Alex Petrov

当我们选择、使用并维护一个数据库系统时,理解它的原理至关重要。但是现今有太多的分布式数据库和工具可供使用,要想弄明白每一种工具的作用以及它们之间的区别往往并不容易。在这本实用指南中,作者讲解了现代数据库和存储引擎背后的概念。 通过本书,你将领略到从众多书籍、论文、博客和多个开源数据库源代码中精心选取的相关材料,并且了解到众多现代数据库之间最重要的区别在于决定存储结构和数据分布的子系统。 你将深入了解如下内容: 存储引擎:学习存储的种类、分类依据,理解基于B树和不可变日志存储结构的存储引擎。 存储构建块:理解数据库文件如何使用诸如页缓存、缓冲池等辅助数据结构来组织构建高效的存储。 分布式系统:逐步学习节点和进程间如何连接并构建复杂的通信模式。 数据库集群:深入探究现在数据库中常用的一致性模型,并了解分布式存储系统是如何实现一致性的。

book

大数据项目管理:从规划到实现

by Ted Malaska, Jonathan Seidman

许多公司会在大数据项目的实施细节上下很多功夫,例如研究分布式处理引擎和数据分析算法。这并没有错,但不要因为一棵树而错过整片森林。本书将为你打开更广阔的视野,展示如何从大数据项目的规划阶段开始,一步步走向成功。无论是首席信息官、首席技术官、项目经理,还是架构师和开发人员,都能通过本书得到 启迪。 开始规划:思考大数据项目的主要类型 评估和选择数据管理解决方案 降低与技术、团队、需求相关的风险 探索良好的接口设计模式 为项目选择合适的分布式存储系统 规划和实施元数据收集 使用数据管道确保数据完整性 根据并行处理引擎的特征评估处理框架

book

演进式架构

by Neal Ford, Rebecca Parsons, Patrick Kua

企业架构师不能再依赖静态计划了。软件开发体系在持续变化,新的工具、框架、技术和范式不断涌现。这给脆弱的系统带来了挑战,但也提供了更好的解决方案。近年来,核心软件工程实践中的快速变化让我们重新思考如何更改架构,使其与时俱进。本书结合相关实践,给出了让架构适应变化的新思路。 构建演进式架构主要涉及3个方面:适用度函数、增量变更和适当的耦合。ThoughtWorks的3位专家各讲一个方面,然后综述如何构建支持持续变更的架构。 适应度函数:架构呈现或前进的目标 增量变更:在开发和运维中实现渐进改变 架构耦合:确定适当的架构耦合以支持无瑕变更 演进式数据:随时间推移按要求和架构转变演进数据库 构建可演进的架构:结合以上各方面构建演进式架构 实践演进式架构:助你起步的实践指南

book

微服务与事件驱动架构

by Adam Bellemare

如今,许多公司常常难以在业务需求和不断增长的数据量之间找到平衡。随着各行各业积极拥抱数字化转型,对大规模实时数据的利用需求正在快速增长,传统的系统架构再也无法承担重任。 本书为构建事件驱动型微服务提供了实用框架。通过本书,你将学习如何根据事件驱动型微服务的原则跨业务部门利用大数据,从而提高服务的可伸缩性和可测试性,让技术选型更灵活,更轻松地应对不断变化的业务需求,真正实现持续交付。 如何利用事件驱动架构更好地实现商业价值 微服务在事件驱动架构设计中的角色 确保团队取得成功的架构模式 开发强大的事件驱动型微服务所需的应用模式 落地微服务生态系统所需的组件和工具