Проверка phpbb на соответствие предоставленных учетных данных базе данных (php, sql, c#) - PullRequest
0 голосов
/ 26 апреля 2020

В настоящее время я пытаюсь проверить, соответствуют ли учетные данные, предоставленные приложением c#, базе данных. Я довольно новичок в PhpBB. Я просто не могу заставить его работать. У кого-нибудь есть решение для этого?

Моя проблема: мой код всегда выводится, пароль неверный. Я думаю, что это как-то связано с их хэшированием.

Моя c# строка подключения выглядит следующим образом:

Auth_Url + "?username=" + login_textbox.Text + "&password=" + password_textbox.Text);

Мой php код выглядит следующим образом:

<?php
$link = mysqli_connect("localhost", "user","pw");
$database = mysqli_select_db($link, "dbname");

$user = $_GET['username'];
$password = $_GET['password'];
$hwid = mysqli_real_escape_string($link, $_GET['hwid']);
$tables = "phpbb_users";

$sql = "SELECT * FROM ". $tables ." WHERE username = '". mysqli_real_escape_string($link,$user) ."'" ;
$result = $link->query($sql);
if ($result->num_rows > 0) {
    // Outputting the rows
while($row = $result->fetch_assoc())
{

    $password = $row['user_password'];
    $salt = $row['user_form_salt'];
    $plain_pass = $_GET['password'];
    $stored_pass = md5(md5($salt).md5($plain_pass));

    function Redirect($url, $permanent = false)
    {
        if (headers_sent() === false)
        {
            header('Location: ' . $url, true, ($permanent === true) ? 301 : 302);
        }
    exit();
    }

    if($stored_pass != $row['user_password'])
    {
        echo "password_incorrect<br>"; // Wrong pass, user exists
    }
    else
    {
        echo "password_correct<br>"; // Correct pass
    }

    echo "g" . $row['group_id'] . "<br>";

    if (strlen($row['hwid']) > 1)
    {
        if ($hwid != $row['hwid'])
        {
            echo "hwid_correct"; // Wrong
        }
        else
        {
            echo "hwid_incorrect"; // Correct
        }
    }
    else
    {
        $sql = "UPDATE ". $tables ." SET hwid='$hwid' WHERE username='$username'";
        if(mysqli_query($link, $sql))
        {
            echo $row['hwid'];
            echo "hwid_registered"; // HWID Set
        }
        else
        {
            echo "h4"; // Else errors
        }
    }
}
}  
?>

Большое спасибо

...