MySQL LOAD_FILE() ve INTO OUTFILE() Sql Enjeksiyonu
Bu yazıda, MySQL LOAD_FILE() işlevi ve INTO OUTFILE() işlevi ve Sql Injection'ı tartışacağız. MySQL, MySQL veritabanının çalıştığı sunucunun dosya sistemindeki dosyaları okumak veya yazmak için kullanılabilen LOAD_FILE() ve INTO OUTFILE() işlevlerini sağlar. Kullanıcı girişi uygun şekilde sterilize edilmezse, bu işlevler SQL enjeksiyon saldırılarına karşı savunmasız olabilir.
Saldırgan, sunucudaki yetkisiz dosyalara erişmek veya bunlara yazmak amacıyla LOAD_FILE() veya INTO OUTFILE() işlevine iletilen dosya yolunu değiştirmek için SQL enjeksiyonunu kullanabilir. Örneğin, bir saldırgan, sunucudaki hassas dosyaları okumak veya sunucuya kötü amaçlı kod yazmak için SQL enjeksiyonunu kullanabilir ve bu da potansiyel olarak sistemin daha fazla ele geçirilmesine yol açabilir.
Bu işlevleri kullanırken SQL enjeksiyon saldırılarını önlemek için, işlevde parametre olarak kullanılan tüm kullanıcı girişlerini uygun şekilde doğrulamak ve sterilize etmek önemlidir. Ek olarak, veritabanına bağlanırken en az ayrıcalıklı MySQL kullanıcı hesabını kullanmak da iyi bir uygulamadır, çünkü bu, bir saldırganın kötü amaçlı SQL'i başarılı bir şekilde enjekte edebilmesi durumunda verebileceği olası zararı sınırlayacaktır.
<?php
$file_path = $_GET['file'];
$sql = "SELECT * FROM users WHERE profile_picture = LOAD_FILE('" . $file_path . "')";
$result = mysqli_query($connection, $sql);
?>
MySQL INTO OUTFILE() işlevini kullanan savunmasız bir PHP kodu örneği:
<?php
$file_path = $_POST['file'];
$content = $_POST['content'];
$sql = "SELECT '".$content."' INTO OUTFILE '" . $file_path . "'";
$result = mysqli_query($connection, $sql);
?>
Bu yazımızda MySQL LOAD_FILE() fonksiyonu ve INTO OUTFILE() fonksiyonu ve Sql Enjeksiyonu ele aldık, bir sonraki yazıda görüşmek üzere, kendinize iyi bakın.

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































