黄东旭解析 TiDB 的核心优势
557
2024-01-18
随机动态字符Redis是一种新的活跃技术,在像认证登录这样的安全场景里可以有效的阻止攻击者猜出正确的凭证它的使用方法正如其名:将一组预先定义好的动态可变字符集应用到不同的安全事件中当需要进行身份验证或授权时,客户端将单独的字符输入服务端并且被服务端接受(正如我们所期望的),然后服务端通过匹配预定义的字符元素来确认是否是正确的参数。
Redis的优势在于它的特定的实现,像传统的哈希函数验证一样,有着传统的非确定性验证机制,即比较长的数字或字符序列(字母,数字,下划线,符号,小括号类型的字符),当输入错误时,攻击者很难通过数学换算来确定它们是哪些字符组成的。
这种技术利用Elixir 语言来定义预定义集合,push socket流技术时代带来了动态扩展,随机动态字符Redis以此实现非确定性验证过程,从而获得更多的攻击防御措施 下面是一个基于Ruby on Rails的随机动态字符Redis的完整示例。
“`ruby#config/initializers/redis.rb# 定义出随机动态字符DYNAMIC_CHARS = [:a..:z, :0..:9, ‘_’].map{|d| d.to_a }.flatten
# 构建动态字符池Random.srand # 设置随机种子pool_size = 8charsPool = Array.new(pool_size) { DYNAMIC_CHARS.sample }.join
# 将动态字符验证加入到认证中# 错误后重置poolRails.configuration.middleware.use Warden::Manager do |manager| manager.default_strategies :password
manager.failure_app = lambda { |env| SessionController.action(:new).call(env) charsPool = Array.new(pool_size) { DYNAMIC_CHARS.sample }.join
}end以上是使用redis作为动态验证码的方法,在客户端输入的时候,需要正确的字符便可以进行验证,可以有效的提高整个系统的安全性在抵御像字典攻击这样的攻击形式,Redis的动态验证机制将是一个有效的保护措施。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。