【问题标题】:How to apply client side password encryption in laravel如何在 laravel 中应用客户端密码加密
【发布时间】:2016-01-26 03:31:14
【问题描述】:

在我的注册表单中,我将用户名和密码从注册表单发送到我的控制器并在密码加密后存储。

我认为我应该首先在客户端加密密码,然后发送到我的控制器(服务器端),这样我的数据就不会被数据包捕获。

现在我正在寻找您对任何可用功能的想法或指导(如果有的话)。

感谢您的宝贵时间。

【问题讨论】:

  • 您希望您的服务器安装一个 ssl 证书并确保客户端使用 https 发出请求。
  • 理论上你可以用公钥加密密码,发送到服务器,再用私钥解密。但是,当 HTTPS 可以使所有流量加密时,自己实现这一点很奇怪。
  • 感谢您的想法,我现在处于开发模式,在生产之前我将使用ssl证书并使用https。
  • 使用HTTPS,不要尝试实现client-side Javascript cryptography
  • 是的,我将在生产模式下使用 HTTPS,谢谢。

标签: javascript php html laravel encryption


【解决方案1】:

这正是HTTPS 的用途:)

【讨论】:

  • 没有https就没有别的办法了吗?
  • 任何其他实现都必须像 HTTPS 一样工作 - 您需要使用某种形式的公钥机制协商密钥。
  • @SonuR 你有什么理由不能使用HTTPS吗?
  • 其实我的网站是在开发模式,所以我才想到这个,但是现在概念清楚了,使用HTTPS。并且在我处于开发模式之前都可以。
  • 这不完全正确!使用 SSLStrip,您不会收到任何警告,而使用人和中间攻击时,您可以清楚地看到密码。请参阅:paladion.net/ssl-stripping-revisiting-http-downgrading-attacks
【解决方案2】:

虽然您可以在客户端加密数据;它几乎没有提供任何保护,因为在数据加密之前仍然可能发生中间人攻击,这无论如何都会将数据泄露给攻击者。

您最好的选择是获得 SSL 证书。您不必获得专业/付费的;如果您有一个小型/个人网站,则一个自签名的就可以了。在客户端加密数据只会给人一种虚假的安全感。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
  • 2016-07-24
相关资源
最近更新 更多