加密或清除Rails日志文件

11

我们有一位客户对安全要求非常严格。因此,我们将使用Postgres的数据库加密选项来加密Rails数据库。但是,当表单提交以创建数据时,Rails记录器日志中仍会暴露客户的数据。

我猜想一个选项是不加密日志文件,而是通过抑制Rails记录POST请求时记录的所有参数值来解决问题。如何最好地做到这一点?

另一个选项是在将其写入磁盘时加密Rails日志文件。这是更好的方法吗?有什么好的方法可以实现它?


我正在寻找一种处理这个问题的方法。你发现了解决方案吗? - M. Scott Ford
也在寻找这个问题的解决方案。 - Anthony DeSimone
2个回答

9

你可以通过在config/application.rb文件中添加要从日志中省略的字段,来完成某些事情,像这样:

class Application < Rails::Application
  ...
  config.filter_parameters += [:password]
  config.filter_parameters += [:ssn]    
  ....
 end

我希望这能帮助到您。


1
如果您想要比filter_parameters更好的参数过滤,您可以编写自定义记录器。 请参见: http://rubyjunky.com/cleaning-up-rails-4-production-logging.html 以及从中提取的gem https://github.com/gshaw/concise_logging
但是,您需要在与日志相同的计算机上存储加密密钥,这可能意味着如果有人拥有活动访问权限,则它也无法解密(但如果他们稍后仅获取日志,则不会)。
一些需要考虑的问题:
  • 您是否需要参数记录?(您是否检查日志?如何跟踪错误?)
  • 您正在尝试达到什么样的合规性?PCI?HIPAA?
  • 您试图避免的攻击向量是什么?即共享主机通过日志访问,物理攻击(删除硬盘),远程访问(从计算机上抓取所有文件),等等。
您的答案将定义攻击此问题的准则!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接