Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。

那么,Token有什么作用?又是什么原理呢?

Token一般用在两个地方:

  • 1)防止表单重复提交、
  • 2)anti csrf攻击(跨站点请求伪造)。

两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单)。下次客户端提交请求时,Token会随着表单一起提交到服务器端。
然后,如果应用于“anti csrf攻击”,则服务器端会对Token值进行验证,判断是否和session中的Token值相等,若相等,则可以证明请求有效,不是伪造的。
不过,如果应用于“防止表单重复提交”,服务器端第一次验证相同过后,会将session中的Token值更新下,若用户重复提交,第二次的验证判断将失败,因为用户提交的表单中的Token没变,但服务器端session中Token已经改变了。

上面的session应用相对安全,但也叫繁琐,同时当多页面多请求时,必须采用多Token同时生成的方法,这样占用更多资源,执行效率会降低。因此,也可用cookie存储验证信息的方法来代替session Token。比如,应对“重复提交”时,当第一次提交后便把已经提交的信息写到cookie中,当第二次提交时,由于cookie已经有提交记录,因此第二次提交会失败。
不过,cookie存储有个致命弱点,如果cookie被劫持(xss攻击很容易得到用户cookie),那么又一次gameover。黑客将直接实现csrf攻击。

所以,安全和高效相对的。具体问题具体对待吧。

此外,要避免“加token但不进行校验”的情况,在session中增加了token,但服务端没有对token进行验证,根本起不到防范的作用。

还需注意的是,对数据库有改动的增删改操作,需要加token验证,对于查询操作,一定不要加token,防止攻击者通过查询操作获取token进行csrf攻击。但并不是这样攻击者就无法获得token,只是增大攻击成本而已。

转载于:https://www.cnblogs.com/jiajialove/p/10688124.html

前后端token机制 识别用户登录信息相关推荐

  1. Day212.OAuth2、微信二维码登入注册功能、用户登录信息前后端供、讲师列表前后端 -谷粒学院

    谷粒学院 OAuth2的使用场景 一.OAuth2解决什么问题 1.OAuth2提出的背景 照片拥有者想要在云冲印服务上打印照片,云冲印服务需要访问云存储服务上的资源 2.图例 资源拥有者:照片拥有者 ...

  2. Spring+SpringMVC+MyBatis明日方舟版人员信息管理系统前端页面代码前后端交互+SSM框架 管理员登录 游客登录 普通用户登录 人员的增删改查 信息更新 图片上传 分页查询)

    Spring+SpringMVC+MyBatis明日方舟版人员信息管理系统前端页面代码(前后端交互+SSM框架 管理员登录 游客登录 普通用户登录 人员的增删改查 信息更新 图片上传 分页查询 修改密 ...

  3. 用户修改了信息jwt服务器怎么识别,django使用JWT保存用户登录信息

    什么是JWT? Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站 ...

  4. 前后端分离之JWT用户认证

    前后端分离之JWT用户认证 在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时 ...

  5. spring boot+iview 前后端分离架构之用户管理的实现(三十)

    spring boot 与 iview 前后端分离架构之用户管理的实现(三十) 公众号 用户管理 相关工具类的实现 User实体改造 UserOrg实体改造 UserRole实体改造 UserRole ...

  6. 微信小程序用户登录信息过期处理

    微信小程序用户登录信息过期处理 由于小程序对获取用户信息的新规定,获取用户信息必须通过一个button调出获取窗口,然而用户的token会过期,而本地存在的缓存可能会让用户误以为自己仍处于登录状态,但 ...

  7. 入门,前后端实现简单账号密码登录

    前后端实现简单账号密码登录 涉及知识点 原理 效果图 前端代码 index.html res.html login.html main.js info.html error.html WZ.html ...

  8. 编写Java程序,使用Swing事件处理机制实现用户登录和英雄信息显示

    返回本章节 返回作业目录 需求说明: 使用Swing事件处理机制实现用户登录和英雄信息显示 实现思路: 创建LoginView类,该类用于显示登录界面,为登录按钮添加ActionListener事件, ...

  9. 【基于SSH框架的个人博客系统06】头像文件上传与前后端分页机制

    注意:本项目为博主初学Web开发时所写,所使用的方法都比较笨,不符合主流开发方法.例如,包管理应该使用Maven进行管理而不是手动导入,对前端后端代码的架构也并不是很清晰.大家学习思想即可,可以不用浪 ...

最新文章

  1. docker-registry的定制和性能分析
  2. 解决sharepoint 2010浏览器在线浏览Word出错
  3. 华为手机拍照后图库里无照片_华为图库中上千张照片,如何快速找到想要的照片?...
  4. mysql中的shell脚本命令_shell脚本中mysql命令
  5. 人脸识别错误代码437是什么意思_lol手游repeat ready check fails什么意思 解决攻略大全...
  6. emui换鸿蒙内核,华为EMUI 11.1三月上线,安卓内核替换为鸿蒙内核
  7. 镜头的分类及选购指南
  8. c语言订单管理,C语言课程设计订单管理系统方案.doc
  9. 答题卡html怎么实现,求一段js代码,实现网上答题,有很多道选择题,每选择一题,在跟随页面的答题卡上有相应的标记...
  10. 遍地是钱,为什么捡不到?
  11. Python接口自动化测试
  12. 项目成本管理的5项原则
  13. Facebook想要成为下一个微信,难! 1
  14. 阿里云云服务器 ECS SSHKEY登录
  15. LSTM长短期记忆网络
  16. 使用WPF开发BLE应用
  17. 远程连接CentOS系统,Fluent软件界面花屏
  18. w5100网络扩展板故障排查记录
  19. 【python函数】
  20. 手游界的淘宝-淘手游

热门文章

  1. redis cluster 设置密码做集群时gem下client.rb文件修改
  2. 深挖BAT内部级别和薪资待遇
  3. leetcode--Median of Two Sorted Arrays
  4. Ext JS 3.0 RC1.1 Released发布了
  5. Reporting Service
  6. Hadoop平台安全机制Kerberos认证
  7. 数据结构源码笔记(C语言):二分查找
  8. uni-app 修改富文本信息中的图片样式
  9. 动态匹配路由的基本用法||路由组件传递参数
  10. DevExpress WPF MVVM入门例子