【问题标题】:HTML protect password fieldsHTML 保护密码字段
【发布时间】:2013-12-20 14:58:09
【问题描述】:

我正在开发一个网站,我希望提供最安全的通信,但我不能在上面花费太多。

关于以下内容:<input type='password' name='password'>

它们通常会通过传输协议以纯文本形式发送。
我只是有一些每月 1 欧元的廉价托管服务,我无法真正“负担”(关于网站捐赠和安全性的重要性)每月 8.50 欧元的所有子域的 SSL 证书。

所以我现在想知道,我有哪些选项可以防止密码以plain text 发送?实际上,它以纯文本形式发送并不重要,它不应该被浏览器和服务器以外的任何人读取,但我想纯文本总是可能的。

我还通过 AJAX 对输入字段进行实时服务器端验证,并检查密码长度等。因此,如果有意义的话,我仍然可以访问这些数据。

如果需要,我可以访问 HTML、JavaScript/JQuery、PHP、AJAX 以及可能更多的语言。

【问题讨论】:

  • 看看here
  • @Joke_Sense10 这仅在我对服务器具有完全访问权限时才有效吗?我看到它依赖于内部命令,我不确定我是否可以在基本的虚拟主机上发布这些命令。另外,是否建议将 JCryption 与 SSL 一起使用,否则会导致一些冲突吗?
  • 有些托管公司提供免费使用自己的域和 SSL。例如,我可以通过https://<mydomain>.<hosterdomain>.ch 致电我的网站,然后就不必购买证书了。
  • @martinstoeckli 不幸的是,我的主机无法做到这一点。

标签: javascript html ajax security passwords


【解决方案1】:

如果您只需要加密以隐藏您的通信不被窃听者 - 您不需要 SSL。 正如我所看到的,SSL 和证书的主要功能是身份验证:您的客户知道他们实际上是在浏览您的网站(而不是某些钓鱼网站)。身份验证还有助于抵御中间人 (MitM) 攻击者。

如果您想对窃听者隐藏密码,请发送一些公钥,然后发送使用此公钥加密的密码。只要您是唯一知道私钥的人,并且您的客户确实收到了您的公钥 - 这应该足够了。

请注意,上述解决方案不适用于 MitM:此类攻击者只需将发送给客户端的公钥更改为自己的公钥,这样攻击者就可以解密加密的密码(因为他知道私钥新公钥的密钥)。 如果您使用 SSL,那么您的客户端可以验证您的公钥确实是您的(它由证书颁发机构签名)。

所以我建议你搜索一下如何在JS中实现公钥操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 2011-02-01
    • 2021-12-31
    相关资源
    最近更新 更多