作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试过了
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
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/
我试过了 line:60 mv = ActiveSupport::MessageVerifier.new return nil unless mv.secure_compare(a
我是一名优秀的程序员,十分优秀!