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 Neal Ford, Rebecca Parsons, Patrick Kua, 島田 浩二

現代におけるエンタープライズアーキテクチャは、もはや静的な計画をあてにすることはできなくなっています。そしてソフトウェア開発エコシステムは、ツールやフレームワーク、技術イノベーションの流れと共に絶え間なく変化しています。こうした状況の中で、いったん構築したシステムを成長させていくには、さまざまな変化に適応しながら進化するアーキテクチャをシステムに組み込む必要があります。本書は、そうしたアーキテクチャを「進化的アーキテクチャ」と名付け、その構築に必要な考え方や技術、実践方法などについて解説するものです。

book

ユーザーストーリーマッピング

by Jeff Patton, 川口 恭伸, 長尾 高弘

本書はユーザーストーリーマッピングの作者、ジェフ・パットンが自ら開発した手法について書き下ろした書籍です。ストーリーマッピングの概要、優れたストーリーマッピングを作るためのコンセプトから、ユーザーストーリーを完全に理解する方法、ストーリーのライフサイクルの認識、イテレーションやライフサイクルごとにストーリーを使う方法まで、手法全体を包括的に解説します。製品開発、UXデザイン、業務要件定義の現場で、関係者が共通理解を持ち、使いやすく・実現可能なサービスや商品を作りたいと考えているすべての人、必携の一冊です。

book

算法技术手册(原书第2 版)

by George T.Heineman, Gary Pollice, Stanley Selkow

打造鲁棒性优秀的软件需要用到高效的算法,然而程序员们却对此知之甚少。新版的《算法技术手册》介绍了用于解决各种类型问题的已有算法,并帮助读者挑选和实现最适合自身需要的算法。不仅如此,书中还提供了恰到好处的数学知识来帮助读者理解和分析算法的性能。 本书侧重应用多于理论且规范严谨。书中提供了用多种程序设计语言实现的文档化的实际代码解决方案。此外,新版还增加了用Python实现的10多种新算法、Voronoi图算法实现以及包括R树(R-Trees)和四叉树(Quadtrees)在内的空间树结构等内容。 通过阅读本书,你将可以: 解决新的编码问题,提升现有解决方案的性能。 快速定位与问题相关的算法,并挑选最佳算法。 获取带有实现技巧提示的采用C、C++、Java和Python实现的算法解决方案。 学习算法的预期性能和最佳性能所需要的条件。 使用高级数据结构提升算法效率。