我经常使用标准表单通过HTTP POST方法发送登录信息,然后使用php进行验证,以检查详细信息是否正确。我对密码(有时是用户名)使用md5散列,以提供一定程度的安全性,因此我不会在代码中存储原始密码,以防未经授权的人查看它,或者类似的情况。
我非常确定,我只是让任何对安全有模糊理解的人发出了叹息,或者至少是愤怒地叹了口气。
我最近在一个论坛上工作,这个论坛有一个用户和密码的MySQL数据库,密码是以md5散列形式存储的,但我担心当通过HTTP POST发送登录表单时,信息可能会被截获。我意识到MySQL注入攻击的可能性,并认为我不会受到任何简单的攻击。
当涉及到这类事情时,我不是安全专家,但我想限制密码在通过HTTP发送时被截获的可能性。
它不是一个大的站点,所以我不太担心攻击,HTTPS也不是一个可能的可能性,所以我正在寻找关于使用这种发送登录信息的方法时应该遵循的标准实践的建议。
干杯
发布于 2009-11-16 18:45:26
您需要根据服务器提供的质询盐对密码进行客户端散列。对于每个请求,这个挑战应该是不同的。
这样,即使密码散列被截获,它也不能用于任何有用的东西,因为下一次身份验证将需要不同的散列。
无论如何,HTTPS应该是正确和安全的方式。
发布于 2009-11-16 18:46:46
一个基本的建议是:不要相信任何人。
因此,测试您的POSTed数据以进行SQL注入,测试文本字段中的Javascript,并避免将普通密码存储在数据库中。
发布于 2014-06-20 03:11:07
你应该为所有类型的登录实现HTTPS,不管是不是哈希。
如果密码是散列的,但通过HTTP传输,任何人都可以窃取散列并自行发布。您的解决方案除了模糊真实密码之外,没有提供任何真正的安全性。
如果HTTPS实现和证书颁发机构对您有问题,您可以始终使用自签名证书。
https://stackoverflow.com/questions/1741376
复制相似问题