2014-05-11 114 views
0

我们正在构建一个由MySQL支持的rails应用程序,该应用程序将存储敏感信息,如用户名,密码,api_key,这些信息是特定于每个登录用户的。如何保护用户名,密码,api_keys

是否有宝石可以保护这些生产数据免受内部团队成员或外部人员的窃取。

我们不希望在日志中打印敏感信息 如果数据被盗,我们应该能够防止对敏感数据进行逆向工程。

我们应该如何设计系统来避免上述情况。

+0

至于密码而言,其存储加密。但是具有足够数据库特权的任何人都可以看到像用户名这样的数据。 – Arjan

+0

不要存储密码[所有](http://stackoverflow.com/a/13326205/533120)(甚至加密)。只需存储密码哈希。和[盐](http://en.wikipedia.org/wiki/Salt_(密码学))他们的好办法。另请参阅[this](http://stackoverflow.com/a/12538258/533120)。 –

+1

我认为这个问题被误解了,OP意味着将外部登录名和密码存储在他的数据库中。 –

回答

0

您可以防止某些参数被显示在Rails的日志中有:

config.filter_parameters << :parameter_name 

有关更多信息,请http://guides.rubyonrails.org/configuring.html#rails-general-configuration

注意数据仍可能会在你的数据库日志,或其他日志你的系统可能正在收集。

无论如何,您应该对密码等事物进行加密,但您的团队对该意愿的访问次数大概会受到他们对源代码/日志/数据库访问次数的影响。

至于外部访问,一个良好的开端将是Rails的安全文档在http://guides.rubyonrails.org/security.html

+0

我了解未在Rails日志中显示它们的部分。我如何以安全的方式存储用户特定的api_keys(例如twitter,fb或flickr,youtube)。 – Rpj