【问题标题】:When is it best to encrypt a variable?什么时候最好加密一个变量?
【发布时间】:2014-03-06 02:18:12
【问题描述】:

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

【问题讨论】:

  • 如果使用https传输数据,那么服务器端加密就足够了
  • 你的意思是hash不加密而且是SERVERSIDE,通过ssl发布

标签: javascript php jquery sql encryption


【解决方案1】:

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

在服务器上,您需要针对如何存储密码制定通用安全策略。存储它们的一个好方法是只存储某种安全散列而不存储实际密码。当要检查密码时,它会在 SSL 下发送到服务器,然后在服务器上对其进行散列并与存储在数据库中的安全散列进行比较。如果它们匹配,则密码检查将生效。这意味着即使您的数据库遭到入侵,实际密码也不会被盗。

您可以在将实际密码存储在数据库中之前使用加密,但这需要保持加密方法/密钥的安全,以便可能闯入您的数据库的黑客无法解密密码。虽然这在正确完成时可能是“安全的”,但它比仅存储哈希而不存储实际密码具有更多潜在漏洞,并且还可能被有权访问数据库和加密方法/密钥的员工从内部破坏然后谁可以窃取密码。

【讨论】:

  • 感谢您为我提供了一些启发。我开始阅读安全方面的内容,但有很多东西比眼睛看到的哈哈!
猜你喜欢
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 2018-07-29
相关资源
最近更新 更多