0

我正在构建一个网络应用程序,并希望确保我们以正确的方式加密用户数据。

这些数据不是高度敏感的(如医疗记录或 CC 号码),但我认为它应该安全地存储 - 只是简单的姓名、公司、职位、电话号码、电子邮件地址。当然还有密码 - 但这将使用哈希/盐来保护......

我想安全地存储用户数据,以防止网站被黑客入侵/服务器受损。但我还需要网站管理员可以看到客户姓名、组织、电话号码和电子邮件地址 - 即在后端可见。

网站管理员当然看不到密码...

我会很感激一些关于我应该如何去做的建议——我想做足够多的事情来“合理地”安全而不会过火——就像我说数据不是非常敏感并且网站本身不是一个任何人都会感到尴尬的……的一员

非常感谢。

4

1 回答 1

0

散列是计算数据的不可逆(或几乎不可逆)单向函数的过程。所以你可能会提到加密。

至于在这种情况下的应用程序级加密,您可以这样做,但它只会防止有人倾倒原始数据库并读取它。要提供管理视图的功能,您必须使用一个密钥加密所有内容。并在您的 web 应用程序中动态解密,值得指出的是,如果您的应用程序易受 SQL 注入攻击,这可能意味着尽管进行了加密,但仍有人能够提取数据。因为您的应用程序可能会认为这是合法数据流的一部分而对其进行解密。

加密数据会引入另一个问题,缩小这些字段的选择范围是什么?您必须在传递之前加密参数。但是您必须使用相同的 IV 来匹配字段值。但是为了使用有效的 IV,您必须知道从哪个提取 InitializationVector 中提取的 db 中的确切记录。正如我所说,这可能很棘手。

我个人认为加密是最后的手段,只有在绝对必要时才应该使用。因为在解决机密性问题时,它会引入一个可能更大的密钥管理问题。我认为这是你的情况。

于 2012-11-27T16:18:08.020 回答