Нужно ли дезинфицировать вводимые пользователем данные при использовании Ajax? - PullRequest
0 голосов
/ 09 июля 2020

Я создаю форму входа, которая не требует перезагрузки страницы при отправке. Я делаю это с помощью Ajax. Ниже мой код:

HTML:

  <form id="myForm" method="post">
     Username:    <input name="username" id="username" type="text"/><br/>
     Password:   <input name="password" id="password" type="password"/><br/>
    <input type="button" id="submitFormData" onclick="SubmitFormData();" value="Submit" />
</form>

JS / Ajax:

function SubmitFormData() {
    var username = $("#username").val();
    var password = $("#password").val();
    $.post("submit.php", { username: username, password: password},
    function(data) {
     $('#results').html(data);
     $('#myForm')[0].reset();
    });
}

PHP (отправить. php):

           $username = mysqli_real_escape_string($connect, $_POST["username"]);  
           $password = mysqli_real_escape_string($connect, $_POST["password"]);  
           $query = "SELECT * FROM users WHERE username = '$username'";  
           $result = mysqli_query($connect, $query);  
           if(mysqli_num_rows($result) > 0)  
           {  
                while($row = mysqli_fetch_array($result))  
                {  
                     if(password_verify($password, $row["password"]))
                     {  
                          //return true;  
                          $_SESSION["username"] = $username;  
                          $_SESSION["uuid"] = $row["uuid"];  
                          echo "success";
                          header ("location: https://durzst.com/main");
                     }  
                     else  
                     {  
                          //return false;  
                          echo '<script>alert("Wrong User Details")</script>';  
                     }  
                }  
           }

Я уже дезинфицирую входные данные в моем PHP (да, я перейду на подготовленные операторы позже), но нужно ли мне что-нибудь делать с Ajax, например, дезинфицировать входные данные , чтобы предотвратить любые атаки. Если да, то как?

1 Ответ

1 голос
/ 09 июля 2020

Да, всегда дезинфицируйте и проверяйте ваши данные. И на стороне клиента, и на стороне сервера.

Очистите ваши данные, чтобы вы не получали неожиданные форматы, символы и т. Д. c.

Подтвердите ваши данные, чтобы убедиться, что это данные, которые ваша программа ожидает / принимает. Адрес электронной почты против некоторой случайной строки, дата против строки или номера телефона и т.д. по теме, здесь - это один.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...