Так что для школьного проекта мне нужно сделать сайт с системой авторизации. В нем есть поле для имени пользователя и пароля, а также кнопка отправки. Он сравнивает имя пользователя и пароль с таковыми в базе данных MySQL. Если комбинация находится в базе данных, пользователь может продолжить, иначе он будет перенаправлен на страницу входа в систему. Я использую подготовленные операторы PDO для подключения к базе данных.
Теперь мой учитель хочет, чтобы я проверил безопасность, выполнив атаки sql на систему входа. К сожалению, я не знаю, что положить в эти коробки и каков будет результат. Например, я попытался ввести значения как в поля имени пользователя, так и в поле пароля, которые вернут истину, например:
1==1, 1===1, 0 is null
Но я не знаю, удалось ли мне это или нет, и могут ли злоумышленники получить доступ к моей базе данных или усечь ее с помощью таких утверждений.
HTML-код:
<form method="post" action="includes/login.php">
<input type="text" name="gebruikersnaam" >
<input type="password" name="wachtwoord" >
<input type="submit" value="login">
</form>
Аутентификация php:
$myusername=$_POST['gebruikersnaam'];
$mypassword=$_POST['wachtwoord'];
$sql="SELECT * FROM leerling WHERE leerlingnummer='$myusername' and wachtwoord='$mypassword'";
$sql2="SELECT * FROM lop WHERE gebruikersnaam='$myusername' and wachtwoord='$mypassword'";
$statement2=$conn->prepare($sql2);
$statement2->execute();
$count2=$statement2->rowcount();
if($count2==1){proceed}
$statement = $conn->prepare($sql);
$statement->execute();
$count= $statement->rowcount();
if($count==1){proceed}
else {deny access}