在没有SSL的情况下,使用file_get_contents secure作为密码安全吗?


Is it secure to use file_get_contents secure for passwords, without SSL?

我想知道file_get_contents对于没有SSL的密码是否安全。我在PHP中做了一个管理面板,并有这个方法的密码,而不是SQL。如有可能,请提供信息来源

将纯文本密码存储在文件中并使用file_get_contents读取它将工作,但您的安全性将较低。更具体地说,它会危及用户的安全。这是因为,即使他们不应该,他们中的一些人会跨服务重用密码,连同你可能也为他们保留的电子邮件地址。

考虑到这一点,您应该对这些密码进行散列处理,而不是以明文形式保存它们。这意味着您将把密码转换为无法逆转的表单,因此为了检查密码,您还需要对用户在登录时输入的密码进行散列处理。这是一种聪明的方法,使破解者很难找出真正的密码,即使他们进入你的服务器并窃取密码文件。

在PHP中推荐的方法是使用password_hash,详细信息在PHP手册中。这个函数的优点是它故意很慢,这使得潜在的攻击者更难以"暴力破解"猜测数百万个密码。

当处理密码时,通过SSL也是一个好主意,在你的web服务器中使用服务器证书。这使得MITM(中间人)攻击更难发生,这种攻击可以在网络传输中窃取密码。