Как защитить мой код от SQL-инъекций - PullRequest
0 голосов
/ 30 декабря 2018

Защищен ли этот код от SQL-инъекций?Если нет, то как мне защитить этот код от SQL-инъекций?Заранее спасибо.

error_reporting(E_ALL); 
ini_set('display_errors', 1);
$servername = "";
$username = "";
$password = "";
$db_name = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $db_name);
// Check connection
if ($conn->connect_error){
  die("Connection failed: " . $conn->connect_error);
} 
$id = $_GET['id'];
$id = mysqli_real_escape_string($conn,$id);
$query = "SELECT * FROM `images` WHERE `file_title`='" . $id . "'";
$result = mysqli_query($conn,$query);

 while($row = mysqli_fetch_array($result)) {
        echo '<video width="100%" class="video" controls>';
        echo '<source src="uploads/'.$row['file_name'].'" type="video/mp4">';
    echo '</video>';
}

1 Ответ

0 голосов
/ 30 декабря 2018

Вам всегда нужно использовать синтаксис параметризованного запроса вместо обычной конкатенации строк (что вы делаете прямо сейчас)

вместо

$query = "SELECT * FROM `images` WHERE `file_title`='" . $id . "'";

вам нужно использовать

$query = "SELECT * FROM `images` WHERE `file_title`= @title ";

и вам нужно соответственно добавить параметры

$title="this is title";
$stmt->bind_param("i", $id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...