什么时候最好加密变量



我有一个表格,用户可以更改密码,并将其存储在SQL数据库中。在表单提交中,该页面通过邮政提交给自身。我的问题是,最好在客户端(JavaScript)或服务器端(PHP)上加密密码字段,还是两者兼而有之?

您的表单提交应通过SSL。如果您这样做,则无需在客户端上进行加密,因为SSL将在运输中保护它。

在服务器上,您需要为存储密码的方式制定一般安全策略。存储它们的一种好方法是仅存储某种安全的哈希,而永远不要存储实际密码。当要检查密码时,它将在SSL下发送到服务器,然后在服务器上进行哈希,并将其与DB中存储的安全哈希进行了比较。如果它们匹配,则密码检查验证。这意味着即使您的数据库被妥协,也没有被盗的实际密码。

您可以在数据库中存储实际密码之前使用加密,但这需要保持加密方法/密钥安全,以便可能闯入数据库的黑客无法解密密码。虽然这可以在正确完成时"安全",但它具有更多的潜在漏洞,而不是存储一个哈希,并且从不存储实际密码,也可以由可以访问DB和加密方法/键的员工从内部妥协。谁可以窃取密码。

最新更新