0

我定期对通过strongbox gem使用公钥加密加密的数据运行长时间的解密过程。该过程解密一些消息,并将不再安全的数据发送给请求方。

在某些情况下,解密过程现在需要足够长的时间,以至于它实际上应该异步执行。我想通过将作业传递给resque scheduler来处理这个问题。

解密密码来自网络请求 - 如何安全地将密码传递给 resque?(resque 和 web 请求在不同的 AWS 实例上)。我不希望有权访问 resque 日志的人访问密码。

4

1 回答 1

0

过滤器参数:

好吧,您绝对可以从日志中过滤您的参数/密码,因此每次您通过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))

这将解决任何有权访问ResqueRails记录知道密码的人的问题

安全 Redis 连接:

尽管这可能会过滤日志中的参数,但 Resque/redis 确实包含其中的敏感数据

我相信您为防止有人在 redis 中嗅探密码所做的最大工作就是redis使用密码连接。

他们可以做到这一点的方法是在redis.conf

在 redis.conf 中寻找这一行(取消注释并设置密码)

#requirepass [set your redis password)

然后连接到Resque使用它password,这将确保只有知道redis密码的客户端才被允许建立连接

Resque 网站:

显然,如果您使用resque-web的数据仍然可能在 UI 上可用,那么您可以做的最好的事情是使用一些授权机制,如基本身份验证或任何适合您需要的授权机制,并且只允许根据您的需要成功验证的那些

这是我放弃的方法,到目前为止我没有任何其他方法:)

希望这有帮助

于 2013-09-10T16:16:44.427 回答