【问题标题】:Mask a form password in PHP在 PHP 中屏蔽表单密码
【发布时间】:2015-10-25 13:45:58
【问题描述】:

经过数小时的谷歌搜索、观看视频以及在我的本地 wamp 服务器上安装 SSL 失败的尝试,我即将放弃。

所以我在这里寻求帮助

我有一个简单的表单,登录一个用户并与一个 php 数据库比较详细信息,密码存储在数据库中的 MD5 哈希中。

我知道 md5 是不安全的,而 https 是保护传输等安全的最糟糕的方式,但我在这里只需要在传输过程中简单地掩盖密码,这样在wireshark 捕获期间它就不会以纯文本形式显示。

表格代码为:

<form method="post" action="index.php" name="loginform" id="loginform">
<fieldset>
    <label for="username">Username:</label><input type="text" name="username" id="username" /><br />
    <label for="password">Password:</label><input type="password" name="password" id="password" /><br />
    <input type="submit" name="login" id="login" value="Login" />
</fieldset>
</form>

有没有办法将密码设置为:

<label for="password">Password:</label><input type=md5("password")

再次,它只是我需要的快速且易于实现的东西。

提前致谢

韦恩

【问题讨论】:

  • 不,HTML 不支持md5 的输入类型
  • SSL 是在浏览器和服务器之间传输密码的推荐方法
  • 还有其他选择吗?我已经尝试将 wamp 配置为 https 并且失败了,它的应用程序只需要 pw 屏蔽
  • 学习配置 SSL,这将是值得的......如果您有关于设置 SSL 的具体问题,请发布这些;但不要试图找到快速简单的替代方案,因为它们从来都不是快速、简单或安全的
  • 嗨,马克,谢谢您的回复。但我的需要并不保证 SSL,感觉就像是带着弹头来进行刀战。我只需要掩盖密码,并且已经花费了 12 个小时来完成任务

标签: encryption passwords wamp plaintext


【解决方案1】:

一种解决方案是使用像https://github.com/blueimp/JavaScript-MD5 这样的javascript MD5 库,并在提交表单时调用md5() 函数。 仅使用 html 代码将无法做到这一点。

如您所知,密码的 md5 散列通常是在服务器端通过代码中的 index.php 页面完成的。 https传输保护密码不被窃听。如果wireshark 能够解密它,那是因为wireshark 作为中间人拦截了通信,并为使用的url 生成了另一个https 证书。浏览器应警告用户通信不安全,因为证书不是来自浏览器信任的证书颁发机构。如果尽管如此,用户继续,他应该知道他页面上的所有内容都可以修改,包括进行散列的代码。

【讨论】:

  • 难以置信的不安全:正是我所说的don't try to find quick and easy alternatives, because they are never quick, easy or secure
  • 客户端哈希的问题是哈希变成了新密码。
  • @Artjom 哈希成为新密码的问题是对的,与不使用https有关
【解决方案2】:

https 是经过验证的登录密码加密和会话保护的首选解决方案。

如果无法使用 https,防止密码被滥用的替代方法可能是非对称加密:在浏览器中使用服务器提供的公钥加密密码,并在服务器上使用相应的私钥对其进行解密。用于加密的 javascript 库是 https://github.com/travist/jsencrypt。如果没有私钥,使用wireshark的攻击者将无法解密密码。

密码必须与来自服务器的随机数(例如序列号)“salt”一起加密,以防止攻击者重复使用密码。

警告:如果您打算将密码用于会话,请阅读https://en.m.wikipedia.org/wiki/Session_hijacking。 https又是一个解决方案。

【讨论】:

    猜你喜欢
    • 2012-07-25
    • 2017-10-02
    • 1970-01-01
    • 2011-02-01
    • 2018-02-16
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多