美文网首页
Token校验

Token校验

作者: imbird | 来源:发表于2017-04-12 13:48 被阅读0次

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

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

Token一般用在两个地方:

  • 防止表单重复提交、
  • 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,只是增大攻击成本而已。

比较高级的参考这个文章:http://www.cnblogs.com/xiekeli/p/5607107.html

相关文章

  • token验证的方法

    统一token处理 排除token校验注解类为不需要校验 token 的方法定义注解@Documented //标...

  • Token策略

    用户携带账号密码访问后端校验,校验成功后生成Token,并且给Token设置有效期,并且把Token放入至Redi...

  • 9.从零搭建WebApi接口开发框架-根据token控制接口请求

    生成中接口的请求必须加token进行权限校验,比如校验是否登录获取的token,校验该用户是否具体该接口访问权限等...

  • Token校验

    Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。 那么,Token有什么作用?又...

  • token校验

    摘自:https://mp.weixin.qq.com/s/yPdSQkSgIftWt6qH82Z4Rw[http...

  • 前后端分离项目——登录Token校验思路

    前言 根据token校验当前用户登录状态是Web项目的常见手段,我给自己的项目做token校验功能时,发现网上很多...

  • 自定义注解开发2

    需求 前端向后台发起请求时,希望某些请求需要校验token,某些请求不需要校验token,而只要在方法上加上注解的...

  • Spring Cloud Gateway自定义Token校验过滤

    一切的业务开发都是基于需求的,首先看看需求: 对访问网关的请求进行token校验,只有当token校验通过时,才转...

  • AbstractRememberMeServices细节记录

    AbstractRememberMeServices有两个实现类 实现类服务端存储token校验后更新token有...

  • 铁犀牛学习笔记(一)

    问题:Ironrhino用户登录中的密码校验流程、OAuth认证、token校验实现过程 用户登录认证过程总结: ...

网友评论

      本文标题:Token校验

      本文链接:https://www.haomeiwen.com/subject/vmrmattx.html