Junwen's home
  • ES6

    • ES6 Decorator
    • ES6核心特性
    • Promise&Generator
  • js原理

    • 简单实现bind、apply和call
    • 如何遍历一个dom tree
    • 实现函数currying
    • 实现一个event
    • 详解js的继承
    • 详解requestAnimationFrame
    • Canvas api详解
    • DOM事件
    • EventLoop详解
    • JavaScript的内存管理
    • JavaScript的运行机制
    • Math对象
    • new操作符都做了什么
    • create基本实现原理
    • Set、Map、WeakSet和WeakMap
    • web worker原理
    • WebGL教程(MDN)
  • jsInfoSeries

    • 简介
    • JavaScript基础知识
    • 基础知识2
    • 基础知识3
    • 基础知识4
  • 技巧

    • 5个js解构有趣用途
    • 如何使用set提高代码性能
    • cordova构建项目时的问题
    • js中轻松遍历对象属性的几种方式
  • 怎么写出更好的css
  • BFC详解
  • box-shadow详解
  • CSS小技巧
  • Grid布局详解
HTML
  • IP十问
  • http笔试
  • http协议
  • 浏览器原理
  • 浏览器缓存其实就这么一回事儿
  • 浏览器兼容性问题
  • 移动端开发兼容性适配
  • 前端性能优化
  • 前端如何进行seo优化
  • webpack

    • webpack HMR
    • webpack优化基本方法
  • leetcode题解

    • 两数之和
    • 判断整数是否为回文串
    • 无重复字符的最长子串
  • Js链表
  • JavaScript排序
  • React

    • 虚拟DOM原理理解
    • React Hook
    • 组件复用指南
  • Vue

    • Vue举一反三
面试题
读书笔记
GitHub (opens new window)

Syun0216

多读书多种树
  • ES6

    • ES6 Decorator
    • ES6核心特性
    • Promise&Generator
  • js原理

    • 简单实现bind、apply和call
    • 如何遍历一个dom tree
    • 实现函数currying
    • 实现一个event
    • 详解js的继承
    • 详解requestAnimationFrame
    • Canvas api详解
    • DOM事件
    • EventLoop详解
    • JavaScript的内存管理
    • JavaScript的运行机制
    • Math对象
    • new操作符都做了什么
    • create基本实现原理
    • Set、Map、WeakSet和WeakMap
    • web worker原理
    • WebGL教程(MDN)
  • jsInfoSeries

    • 简介
    • JavaScript基础知识
    • 基础知识2
    • 基础知识3
    • 基础知识4
  • 技巧

    • 5个js解构有趣用途
    • 如何使用set提高代码性能
    • cordova构建项目时的问题
    • js中轻松遍历对象属性的几种方式
  • 怎么写出更好的css
  • BFC详解
  • box-shadow详解
  • CSS小技巧
  • Grid布局详解
HTML
  • IP十问
  • http笔试
  • http协议
  • 浏览器原理
  • 浏览器缓存其实就这么一回事儿
  • 浏览器兼容性问题
  • 移动端开发兼容性适配
  • 前端性能优化
  • 前端如何进行seo优化
  • webpack

    • webpack HMR
    • webpack优化基本方法
  • leetcode题解

    • 两数之和
    • 判断整数是否为回文串
    • 无重复字符的最长子串
  • Js链表
  • JavaScript排序
  • React

    • 虚拟DOM原理理解
    • React Hook
    • 组件复用指南
  • Vue

    • Vue举一反三
面试题
读书笔记
GitHub (opens new window)
  • 白帽子讲web安全

    • HTML5安全
    • PHP安全
    • WebServer配置安全
    • Web框架安全
    • 互联网业务安全
    • 加密算法和随机数
    • 安全的开发流程
    • 安全运营
    • 应用层拒绝服攻击
    • 文件上传漏洞
    • 注入攻击
    • 点击劫持
    • 认证与会话管理
      • 认证与会话管理
    • 访问控制
    • 跨站点请求伪造(CSRF)
    • 跨站脚本攻击
  • 深入react技术栈

    • chapter1
  • 高性能建站
  • 冴羽系列文章链接
  • books
junwen
2020-03-27

认证与会话管理

# 认证与会话管理

认证的目的是为了认出用户是谁,而授权的目的为了决定用户能够做什么。


# 密码那些事儿

  1. 普通应用要求长度为6位以上;
  2. 重要应用要求长度为8位以上;
  3. 密码区分大小写字母;
  4. 密码为大写字母、小写字母、数字、特殊符号中两种以上组合;
  5. 不要使用连续性的字符;
  6. 尽量避免使用重复的字符

密码的保存也有一些需要注意的地方。一般来说,密码必须以不可逆的加密算法,或者单向散列函数算法,加密后存储在数据库中。将明文密码经过哈希后MD5或者sha-1再保存到数据库中,是目前业界比较普遍的做法。


# 多因素认证

除了支付密码外,手机动态口令、数字证书、宝令、支付盾、第三方证书等都可用于用户认证。


# session与认证

当用户登录完成后,在服务器端会创建一个新的会话Session,会话中会保存用户的状态和相关信息。服务器端维护在线用户的session,此时的认证,只需要知道是哪个用户在浏览当前的页面即可。
最常见的做法把sessionID加密后保存在cookie中,因为cookie会随着http请求头发送,且受到浏览器同源策略的保护


# session fixation攻击

sessionid 登录时没有重写时导致。


# session保持攻击

如果攻击者能一直持有一个有效的session,间隔性的刷新页面,能让session一直活下去。防御手段强制销毁session每隔一段时间。

单点登录 openid的方式 通行证方式


在Github上编辑此页 (opens new window)
#web安全
上次更新: 3/22/2021, 3:47:15 AM
点击劫持
访问控制

← 点击劫持 访问控制→

最近更新
01
如何打造全链路项目生命周期的统一交付平台
04-10
02
如何建立前端标准化研发流程
04-10
03
如何从0到1一步步成体系地搭建CI
04-10
更多文章>
Theme by Vdoing | Copyright © 2019-2021 Syun
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式