⊗ppSpPDQu 58 of 83 menu

PDO'da PHP'de Sorgu Sorunları

Bildiğiniz gibi, SQL sorguları SQL enjeksiyonlarına açıktır. PDO eklentisi enjeksiyonlarla mücadele etmek için tasarlanmıştır, ancak varsayılan olarak, bunu otomatik olarak yapmaz.

Soruna bir örnekle bakalım. Diyelim ki içine bir değişkenin eklendiği aşağıdaki sorgumuz var:

<?php $sql = "SELECT * FROM users WHERE id=$id"; $res = $pdo->query($sql); ?>

Diyelim ki değişkenimiz dışarıdan geliyor, örneğin, bir GET parametresinden. Ancak basitlik için, değerini manuel olarak belirleyelim. Belli bir sayısal değer bekliyoruz, örneğin şu şekilde:

<?php $id = 1; ?>

Ancak kötü niyetli bir hacker aşağıdaki değeri iletebilir (bir role alanımız olduğunu varsayalım):

<?php $id = '-1 OR role="admin"'; ?>

Yani, biz şu sorguyu bekliyorduk:

<?php $sql = "SELECT * FROM users WHERE id=1"; $res = $pdo->query($sql); ?>

Ama site yöneticisini çeken aşağıdaki sorguyu elde ettik:

<?php $sql = "SELECT * FROM users WHERE id=-1 OR role="admin""; $res = $pdo->query($sql); ?>

Böyle bir durumdan kaçınmak için, PDO'da hazırlanmış sorgular adı verilen özel bir mekanizma sağlanmıştır. Bunları bir sonraki derste inceleyeceğiz.

Veritabanınıza kasıtlı olarak bir SQL enjeksiyonu gerçekleştirin.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet