我有一个将保存敏感数据的数据库,因此应该在数据库中加密 . 基本上,敏感数据是另一个网站的凭据 . 所以我想用用户密码salt加密它们 .
要解密凭证,需要密码 .
我看到两种方式:登录时,我可以解密凭据,然后将它们存储在会话中?这样安全吗?
要么
在解密存储的密码/ ID之前,用户更难以再次询问密码?
我们不希望自己有能力使用存储的凭据 .
我强烈推荐“Security on Rails” . 它需要花一些时间阅读才能做到正确 . 它们涵盖了这个主题,包括如何对加密数据进行加盐,单元测试以确保加密数据等等 .
他们的示例代码显示了如何将类方法添加到ActiveRecord :: Base,以便您可以在一行代码中加密任何数据库列 . 绝对是一种惯用的Rails方法 .
这是一个很棒的阅读 - 单元测试让我感到震惊,所以认真......去吧 .
顺便说一下,当你说
您意识到,由于您的代码从用户的浏览器接收到未加密的数据,因此您可以在磁盘上加密之前访问内存中的数据,或者在用户以后想要使用该数据时未加密的数据 . 糟糕的人可以访问这些数据,如果他们根据你的盒子,偷偷摸摸的东西到Ruby eval() 等 .
eval()
但是,加密数据确实有很大帮助 . 例如,SQL注入攻击无法获取解密数据 .
1 回答
我强烈推荐“Security on Rails” . 它需要花一些时间阅读才能做到正确 . 它们涵盖了这个主题,包括如何对加密数据进行加盐,单元测试以确保加密数据等等 .
他们的示例代码显示了如何将类方法添加到ActiveRecord :: Base,以便您可以在一行代码中加密任何数据库列 . 绝对是一种惯用的Rails方法 .
这是一个很棒的阅读 - 单元测试让我感到震惊,所以认真......去吧 .
顺便说一下,当你说
您意识到,由于您的代码从用户的浏览器接收到未加密的数据,因此您可以在磁盘上加密之前访问内存中的数据,或者在用户以后想要使用该数据时未加密的数据 . 糟糕的人可以访问这些数据,如果他们根据你的盒子,偷偷摸摸的东西到Ruby
eval()
等 .但是,加密数据确实有很大帮助 . 例如,SQL注入攻击无法获取解密数据 .