简单的PHP密码页 - 为何加密?

时间:2014-02-04 02:17:07

标签: php forms passwords

假设您有一个需要密码的简单页面,您将此页面通过电子邮件发送给拥有密码的朋友,以便他们可以查看其中的隐藏信息。

这是不安全的,为什么?

$password = htmlentities($_POST["password"]);
echo ($password == "hello123" && strlen($password) <= 10)
? "secret information" : "incorrect password";

有人可能会受到什么样的攻击?我想他们试图突破查询?如何加密页面内的密码(SHA1)更安全?

3 个答案:

答案 0 :(得分:0)

没有查询。对于像这样的简单页面,没有理由进一步保护它,因为黑客必须访问服务器的文件系统才能找到密码。

答案 1 :(得分:0)

如果用户选择自己的密码,则必须使用哈希密码。他们通常会为多个网站重复使用相同的密码,如果您的网站泄露,其他更重要的网站也会受到损害。

即使您将密码硬编码在代码中,最好只将其哈希值放入代码中。只需要做很少的工作,每个有权访问服务器的人都可以读取密码(主机,丢失的备份,版本控制......)。

从数据库获取密码通常比从代码中获取硬编码密码(需要服务器上的权限)更容易(SQL注入),因此需要更好地保护数据库中的密码。

答案 2 :(得分:0)

一个简单的哈希(比如sha1)可以用&gt;攻击具有线索和游戏玩家gfx卡的15岁攻击者每秒10亿次尝试(如果攻击者获取哈希值并尝试找到明文密码,例如在找到某种方式从存储它之后读取哈希值)。

如果你向哈希添加一个盐,这甚至都是正确的。

所以,如果您不需要,请不要编写自己的密码,有很多方法可以让经验证的代码为您检查一些密码(例如,通过一些apache模块,可能是一个好的php密码库,...)。

表示密码代码可能正常且足够现代,当它在内部使用pbkdf2,bcrypt,scrypt,sha512-crypt之类的东西时。