gpt4 book ai didi

ruby - 我如何用密码保护我的/sidekiq 路由(即要求对 Sidekiq::Web 工具进行身份验证)?

转载 作者:IT王子 更新时间:2023-10-29 05:54:14 26 4
gpt4 key购买 nike

我在我的 Rails 应用程序中使用 sidekiq。默认情况下,任何人都可以通过在 url 后附加“/sidekiq”来访问 Sidekiq。我只想用密码保护/验证 sidekiq 部分。我该怎么做?

最佳答案

将以下内容放入您的 sidekiq 初始化程序

require 'sidekiq'
require 'sidekiq/web'

Sidekiq::Web.use(Rack::Auth::Basic) do |user, password|
# Protect against timing attacks:
# - See https://codahale.com/a-lesson-in-timing-attacks/
# - See https://thisdata.com/blog/timing-attacks-against-string-comparison/
# - Use & (do not use &&) so that it doesn't short circuit.
# - Use digests to stop length information leaking
Rack::Utils.secure_compare(::Digest::SHA256.hexdigest(user), ::Digest::SHA256.hexdigest(ENV["SIDEKIQ_USER"])) &
Rack::Utils.secure_compare(::Digest::SHA256.hexdigest(password), ::Digest::SHA256.hexdigest(ENV["SIDEKIQ_PASSWORD"]))
end

在路由文件中:

mount Sidekiq::Web => '/sidekiq'

关于ruby - 我如何用密码保护我的/sidekiq 路由(即要求对 Sidekiq::Web 工具进行身份验证)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12265421/

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