Здравствуйте, я просто хочу спросить о SQL-инъекции в настоящее время. Я работаю над страницей входа, но у меня возникает небольшая проблема с SQL-инъекцией. В настоящее время я тестирую пакетный SQL-код, как показано ниже. введите параметр SQL, но он, похоже, не работает над SQL-инъекцией. Моя проверка основана на подсчете строк, если она равна 0, она уничтожит сеанс и снова перенаправится в индекс. Кажется, что код работает нормально, но я боюсь, почему он работает правильно, не помещая SQL-параметр для предотвращения SQL-инъекции. Я надеюсь, что кто-то может объяснить, спасибо заранееPHP SQL injection не работает
secured_page.php
<?php
// Start the session
session_start();
// Set session variables
$_SESSION["email"] = $_POST['email'];
$_SESSION["password"] = md5($_POST['password']);
if (isset($_SESSION['email'])){
header('Location: profile.php');
}
else {
header('Location: index.php');
}
?>
profile.php
<?php
// Start the session
session_start();
include('header.php');
include('db_connect.php');
$email = $_SESSION["email"];
$password = $_SESSION["password"];
$sql = "SELECT * FROM user where email = '$email' and password = '$password' LIMIT 1";
$result = $conn->query($sql);
echo $result->num_rows;
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>";
}
} else {
header('Location: unset_session.php');
}
if (!isset($_SESSION['email'])){
header('Location: index.php');
}
?>
<br>
<a href="unset_session.php">Logout</a>
<?php
$conn->close();
include('footer.php');
?>
Вы используете mysqli или pdo? –
Я использую mysqli – jester
Итак, ваш вопрос: «Почему я не могу использовать sql-inject в этом, казалось бы, sql-уязвимом коде?», Правильно? Тогда вы должны показать нам, что вы пытались ввести. Ответ, вероятно, можно понять, сбросив ваш '$ sql' и, конечно же, зная, что находится в базе данных. – ippi