token的使用

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,只是增大攻击成本而已。

发布者:常山赵子龙,转载请注明出处:https://www.qztxs.com/archives/science/technology/11442

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年5月27日 下午4:12
下一篇 2022年5月27日 下午4:14

相关推荐

  • MySQL官方的数据库中间件,有人用么?

    MySQL官方的数据库中间件,mysql-proxy,有童鞋了解么?   mysql-proxy是什么? mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。 画外音:中间件有基于客户端的,也有基于服务端的,此为后者。   mysql-proxy使用什么协议? ...

    2022年5月11日
    3100
  • msfvenom 使用

    木马连接方式 正向连接(bind) 是我主动去连接别人机器上的某个端口,很显然,这样极易被对方防火墙拦掉反向连接(reverse)是让别人机器上的某个端口上的流量主动连到我机器上的某个端口上,起码暂时对各类应用层防火墙的穿透效果还是蛮不错的  msfvenom 常用选项123456789-l 列出所有可用的payload,编码器,空指令……-p 指...

    技术 2022年5月28日
    7600
  • 博客添加威胁情报播报模块

    漏洞威胁情报,通过公开的威胁情报来源爬取并整合最新信息 clone项目地址:https://github.com/lyy289065406/threat-broadcast 通过Github Actions部署,并自动生成 Github Page 播报页面 Github Page

    2022年5月27日
    2100
  • 什么是单机 集群 热备 磁盘阵列raid

    单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份。   集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用。   热备部署(hot-swap):只有一个桶提供服务,另一个桶stand-by,在水用完时自动热替换,服务冗余部署,只有一个主服务对外提供服务,影子服务在...

    2022年5月11日
    4400
  • WINSpect-基于Powershell的Windows安全审计工具

    0x00 描述 WINSpect是一款基于Powershell的Windows安全审计工具,可用于枚举和识别Windows平台的安全漏洞,以进一步的优化和加固平台的安全防护策略。 0x01 功能 WINSpect将为我们提供审计检查和枚举: 检查已安装的安全产品 检查DLL劫持 检查用户账户控制设置 本地文件系统共享 具有本地组成员身份的域用户和组 注册表a...

    技术 2022年6月2日
    5500

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信