密码查找

时间:2011-07-08 10:59:54

标签: php webforms passwords

需要对表单提供一些帮助。我创建了一个需要登录的表单。一旦有人登录,他们就会填写表单,然后其他人检查表单并在提交表单之前输入密码。

我已经设置了一些规则来检查字段是否正确完成,我想编写一些代码来检查密码字段是否已完成,然后根据数据库中存储的密码进行检查。

到目前为止,我已经得到了这个。

    if (!empty($_POST['password']))
{


/*connect to database to check password is valid*/
    $user_name = "contains username for database";
    $pass_word = "contains password";
    $database = "name of database";
    $server = "localhost";

    $db_handle = mysql_connect($server, $user_name, $pass_word);
    $db_found = mysql_select_db($database, $db_handle);

    if ($db_found) {

        $uname = quote_smart($uname, $db_handle);
        $pword = quote_smart($pword, $db_handle);

        $SQL = "SELECT * FROM masterpass WHERE password = $password";
        $result = mysql_query($SQL);
        $num_rows = mysql_num_rows($result);

        if ($result) {
            if ($num_rows > 0) {
                continue;
            }
            else {
                $error = true;



  }

不确定我是否正确行事,所以任何帮助都会很棒。

提前致谢 马特

2 个答案:

答案 0 :(得分:2)

对于初学者,首先要创建$pword

$pword = quote_smart($pword, $db_handle);

并在您的查询中使用$password

$SQL = "SELECT * FROM masterpass WHERE password = $password";

这不起作用。

其次,您应该在查询中询问用户名 AND 密码。

最后但并非最不重要:永远不会在数据库中以明文保存密码。生成 MD5 hash

答案 1 :(得分:1)

  

我已经设置了一些规则来检查字段是否正确完成,我想编写一些代码来检查密码字段是否已完成,然后根据数据库中存储的密码进行检查。

不,你没有。检查密码是否已存在于数据库中并不是一件非常聪明的事情,因为这会使您的应用程序打开暴力攻击。我可以使用您的表单来确定使用哪些密码,如果我可以获得您的用户列表,我可以尝试每个密码给每个用户并获取访问权限。

其次,quote_smart可能并不比mysql_real_escape_string更聪明。请改用它。

第三,正如Sascha已经提到的那样,请生成一个哈希值。我不会使用MD5,而是使用sha1,但即使使用不含盐的MD5也会大大提高表单的安全性。

我验证密码的咒语是:确保密码超过7个字符,就是这样。不要假设人们应该使用什么密码。我讨厌它,如果我输入密码,一些验证程序告诉我,我不能在我的密码中使用{^。