11

我们有一个客户的安全要求非常严格。因此,我们将使用 Postgres 的数据库加密选项之一来加密 Rails 数据库。但这仍然会使客户的数据在提交表单以创建数据时暴露在 Rails 记录器记录的内容中。

我想一种选择不是加密日志文件,而是抑制 Rails 为 POST 请求记录的所有参数值。最好的方法是什么?

另一种选择是在写入磁盘时加密 Rails 日志文件。这是一个更好的方法吗?有什么好的方法吗?

4

2 回答 2

9

您可以做的一件事是在您的config/application.rb文件中,您可以像这样添加要从日志中省略的字段

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

我希望这个对你有用

于 2015-10-17T00:01:51.593 回答
1

如果你想要比所有参数的 filter_parameters 更好的东西,你可以编写一个自定义记录器。请参阅:http ://rubyjunky.com/cleaning-up-rails-4-production-logging.html以及有人从中提取的 gem,https://github.com/gshaw/concise_logging

但是,您需要将加密密钥与日志存储在同一台机器上的某个位置,这可能意味着如果有人具有主动访问权限(但如果他们稍后以某种方式获取日志则不会)。

一些需要思考的问题:

  • 您是否需要参数记录?(你甚至检查日志吗?你如何跟踪错误?)
  • 你想达到什么样的合规性?PCI?HIPAA?
  • 您要避免的攻击媒介是什么?即通过共享主机访问日志、物理攻击(移除硬盘驱动器)、远程访问(从机器上获取所有文件)、..

你的答案将定义如何解决这个问题的指导方针!

于 2015-10-22T22:35:42.103 回答