我定期对通过strongbox gem使用公钥加密加密的数据运行长时间的解密过程。该过程解密一些消息,并将不再安全的数据发送给请求方。
在某些情况下,解密过程现在需要足够长的时间,以至于它实际上应该异步执行。我想通过将作业传递给resque scheduler来处理这个问题。
解密密码来自网络请求 - 如何安全地将密码传递给 resque?(resque 和 web 请求在不同的 AWS 实例上)。我不希望有权访问 resque 日志的人访问密码。
我定期对通过strongbox gem使用公钥加密加密的数据运行长时间的解密过程。该过程解密一些消息,并将不再安全的数据发送给请求方。
在某些情况下,解密过程现在需要足够长的时间,以至于它实际上应该异步执行。我想通过将作业传递给resque scheduler来处理这个问题。
解密密码来自网络请求 - 如何安全地将密码传递给 resque?(resque 和 web 请求在不同的 AWS 实例上)。我不希望有权访问 resque 日志的人访问密码。
好吧,您绝对可以从日志中过滤您的参数/密码,因此每次您通过Resque
记录器或Rails
记录器登录时,都尝试过滤掉这些参数
想象一下基本的代码片段看起来像这样
def filter
@filter ||= ActionDispatch::Http::ParameterFilter.new(Rails.application.config.filter_parameters)
end
def filter_parameter(params)
filter.filter params
end
现在每次调用记录器时都会简单地过滤参数
[Rails | Resque].logger.info (filter_parameter(my_parameter))
这将解决任何有权访问Resque
或Rails
记录知道密码的人的问题
尽管这可能会过滤日志中的参数,但 Resque/redis 确实包含其中的敏感数据
我相信您为防止有人在 redis 中嗅探密码所做的最大工作就是redis
使用密码连接。
他们可以做到这一点的方法是在redis.conf
在 redis.conf 中寻找这一行(取消注释并设置密码)
#requirepass [set your redis password)
然后连接到Resque
使用它password
,这将确保只有知道redis密码的客户端才被允许建立连接
显然,如果您使用resque-web
的数据仍然可能在 UI 上可用,那么您可以做的最好的事情是使用一些授权机制,如基本身份验证或任何适合您需要的授权机制,并且只允许根据您的需要成功验证的那些
这是我放弃的方法,到目前为止我没有任何其他方法:)
希望这有帮助