SQL-инъекция MySQL LOAD_FILE() и INTO OUTFILE()
В этой статье мы обсудим функцию MySQL LOAD_FILE(), функцию INTO OUTFILE() и внедрение Sql. MySQL предоставляет функции LOAD_FILE() и INTO OUTFILE(), которые можно использовать для чтения или записи файлов в файловой системе сервера, на котором работает база данных MySQL. Эти функции могут быть уязвимы для атак путем внедрения SQL-кода, если пользовательский ввод не очищен должным образом.
Злоумышленник может использовать SQL-инъекцию, чтобы изменить путь к файлу, переданный функции LOAD_FILE() или INTO OUTFILE(), для доступа или записи в неавторизованные файлы на сервере. Например, злоумышленник может использовать SQL-инъекцию для чтения конфиденциальных файлов на сервере или для записи вредоносного кода на сервер, что может привести к дальнейшей компрометации системы.
Чтобы предотвратить атаки с внедрением SQL-кода при использовании этих функций, важно правильно проверять и дезинфицировать любой пользовательский ввод, используемый в качестве параметра функции. Кроме того, рекомендуется использовать наименее привилегированную учетную запись пользователя MySQL при подключении к базе данных, так как это ограничит потенциальный ущерб, который может нанести злоумышленник, если он сможет успешно внедрить вредоносный SQL.
<?php
$file_path = $_GET['file'];
$sql = "SELECT * FROM users WHERE profile_picture = LOAD_FILE('" . $file_path . "')";
$result = mysqli_query($connection, $sql);
?>
Пример уязвимого PHP-кода, использующего функцию MySQL INTO OUTFILE():
<?php
$file_path = $_POST['file'];
$content = $_POST['content'];
$sql = "SELECT '".$content."' INTO OUTFILE '" . $file_path . "'";
$result = mysqli_query($connection, $sql);
?>
В этом посте мы обсудили функцию MySQL LOAD_FILE() и INTO OUTFILE(), а также Sql Injection, увидимся в следующем посте, будьте осторожны.

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































