php - 使用 HTTP POST 登录表单

标签 php mysql security http passwords

我经常使用标准表单通过 HTTP POST 方法发送登录信息,然后使用 php 验证它以检查详细信息是否正确。我在密码(有时是用户名)上使用 md5 哈希来提供一定程度的安全性,因此我不会在我的代码中存储原始密码以防未经授权的人或类似的人查看它。

我很确定我刚刚让任何对安全性有模糊理解的人发出呻吟或者至少是气愤地叹息。

我最近在一个有用户和密码的 MySQL 数据库的论坛上工作,密码存储为 md5 哈希值,但我担心通过 HTTP POST 发送登录表单时信息被拦截的可能性是那里。我知道 MySQL 注入(inject)攻击的可能性,并认为我不会受到任何简单的攻击。<​​/p>

我不是这类东西的安全专家,但我想限制通过 HTTP 发送密码时被拦截的可能性。

这不是一个大网站,所以我并不过分担心攻击,HTTPS 也不太可能,所以我正在寻找有关使用这种发送登录信息的方法时应该遵循的标准做法的建议。

干杯

最佳答案

您需要根据服务器提供的质询盐对密码进行客户端散列。每个请求的挑战应该不同。

这样,即使密码散列被拦截,它也无法用于任何有用的事情,因为下一次身份验证将需要不同的散列。

无论如何,HTTPS 应该是正确且安全的方式。

关于php - 使用 HTTP POST 登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1741376/

相关文章:

php - 在 foreach 循环中追加数组的方法比较

javascript - 使用 ajax 和其他类型的输入发送文件

mysql - 使用 union all 和内连接创建表

mysql - SELECT SUM(column) INTO @variable in MySQL Trigger

iphone - iOS 应用程序是否可提取?

mysql - 如何确保 mySQL 数据库仅从我的游戏中获取值?

javascript - 如果服务器必须始终检查凭据,那么在进行身份验证时,JavaScript 验证的意义何在?

php - ElasticSearch 和在 PHP 中搜索多个字段

javascript - 如何使用 AngularJS 在数据库的复选框中设置默认值

mysql - 如何在 MySQL 上进行 SQL 区分大小写的字符串比较?