gpt4 book ai didi

ruby-on-rails - 如何使用 rails secure_compare?

转载 作者:行者123 更新时间:2023-12-04 06:25:21 31 4
gpt4 key购买 nike

我试过了

line:60  mv = ActiveSupport::MessageVerifier.new
return nil unless mv.secure_compare(a, b)
这给出了错误
ArgumentError - wrong number of arguments (0 for 1..2):
activesupport (4.0.3) lib/active_support/message_verifier.rb:29:in `initialize'
app/controllers/application_controller.rb:60:in `new'
http://apidock.com/rails/ActiveSupport/MessageVerifier/secure_compare
编辑
主动支持方法是私有(private)的,所以我只是将该方法直接复制到应用程序 Controller 中。
   def secure_compare(a, b)
return false unless a.bytesize == b.bytesize

l = a.unpack "C#{a.bytesize}"

res = 0
b.each_byte { |byte| res |= byte ^ l.shift }
res == 0
end
这样做或使用此实现是否有任何明显的安全问题?

最佳答案

secure_compare是自 rails 4.2.0 https://api.rubyonrails.org/classes/ActiveSupport/SecurityUtils.html#method-c-secure_compare 以来 ActiveSupport::SecurityUtils 的公共(public)类方法
使用示例:

def authenticate_by_token
authenticate_with_http_token do |token, options|
user = User.find_by(id: options[:uid])
if user && ActiveSupport::SecurityUtils.secure_compare(user.auth_token, token)
@current_user = user
end
end
end

关于ruby-on-rails - 如何使用 rails secure_compare?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22747052/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com