SQL Injection, cloudflare waf ile engellenir mi?
7
●224
- 04-07-2024, 19:10:11Hocam peki şu şekilde engellenebilir mi?satrancali adlı üyeden alıntı: mesajı görüntüle
(mevcut kod)
$sql = "INSERT INTO basvurular (karakteradi, hesap, gorunus, biyografi, soru1, soru2, soru3, soru4, soru5, soru6, tenrengi, cinsiyet, dogumyeri, yas, sifre, skin) VALUES ('$karakteradi', '$hesap', '$gorunus', '$biyografi', '$soru1', '$soru2', '$soru3', '$soru4', '$soru5', '$soru6', '$tenrengi', '$cinsiyet', '$dogumyeri', '$yas', '$sifre_hashed', '$skin')";
(güncel kod)
$sql = "INSERT INTO basvurular (karakteradi, hesap, gorunus, biyografi, soru1, soru2, soru3, soru4, soru5, soru6, tenrengi, cinsiyet, dogumyeri, yas, sifre, skin)
VALUES (:karakteradi, :hesap, :gorunus, :biyografi, :soru1, :soru2, :soru3, :soru4, :soru5, :soru6, :tenrengi, :cinsiyet, :dogumyeri, :yas, :sifre, :skin)";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':karakteradi' => $karakteradi,
':hesap' => $hesap,
':gorunus' => $gorunus,
':biyografi' => $biyografi,
':soru1' => $soru1,
':soru2' => $soru2,
':soru3' => $soru3,
':soru4' => $soru4,
':soru5' => $soru5,
':soru6' => $soru6,
':tenrengi' => $tenrengi,
':cinsiyet' => $cinsiyet,
':dogumyeri' => $dogumyeri,
':yas' => $yas,
':sifre' => $sifre_hashed,
':skin' => $skin
]); - 04-07-2024, 19:47:52Prepared STMT bunun icin var zaten. Emulasyon modunda PDO, diger turlu DB'nin prepared stmt destegi varsa DB kendi escape eder disaridan gelen inputlari.deks adlı üyeden alıntı: mesajı görüntüle
- 04-07-2024, 20:04:22Büyük ölçüde evet, belirli bir yere kadar engelleyebilir. İnsanların gözünde Cloudflare, bir anti ddos çözümü olarak görünse de, aslında tamamen sizin belirlediğiniz kurallara bağlı olarak çalışan, istediğiniz gibi şekillendirebildiğiniz modüler bir yapıya sahiptir. Belirli parametreler ve istekler için kurallar oluşturarak, birçok sql injection saldırısından kendinizi koruyabilirsiniz.
- 04-07-2024, 20:09:25Eskiden engelliyordu basit atakları kendi sitemde denemiştim ama tamamen ona güvenmek pek mantıklı değil.
- 04-07-2024, 20:19:51Gerekli rulelar belirlenirse belli oranda engeller ancak 6k satırdan bahsediyorsanız illa aradan sıyrılan değerler olur. Buradan cloudflarein kendi açıklamasını inceleyebilirsiniz.
Proje büyük bir proje ise güvenlik testi yaptırmanızı öneririm çünkü waflar atlatılabiliyor açık bırakırsanız sıkıntıya girersiniz. - 04-07-2024, 21:22:40Veri tipi de belirtirseniz daha sağlıklı olur.deks adlı üyeden alıntı: mesajı görüntüle
$sql = "INSERT INTO basvurular (karakteradi, hesap, gorunus, biyografi, soru1, soru2, soru3, soru4, soru5, soru6, tenrengi, cinsiyet, dogumyeri, yas, sifre, skin) VALUES (:karakteradi, :hesap, :gorunus, :biyografi, :soru1, :soru2, :soru3, :soru4, :soru5, :soru6, :tenrengi, :cinsiyet, :dogumyeri, :yas, :sifre, :skin)"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':karakteradi', $karakteradi, PDO::PARAM_STR); $stmt->bindParam(':hesap', $hesap, PDO::PARAM_STR); $stmt->bindParam(':gorunus', $gorunus, PDO::PARAM_STR); $stmt->bindParam(':biyografi', $biyografi, PDO::PARAM_STR); $stmt->bindParam(':soru1', $soru1, PDO::PARAM_STR); $stmt->bindParam(':soru2', $soru2, PDO::PARAM_STR); $stmt->bindParam(':soru3', $soru3, PDO::PARAM_STR); $stmt->bindParam(':soru4', $soru4, PDO::PARAM_STR); $stmt->bindParam(':soru5', $soru5, PDO::PARAM_STR); $stmt->bindParam(':soru6', $soru6, PDO::PARAM_STR); $stmt->bindParam(':tenrengi', $tenrengi, PDO::PARAM_STR); $stmt->bindParam(':cinsiyet', $cinsiyet, PDO::PARAM_STR); $stmt->bindParam(':dogumyeri', $dogumyeri, PDO::PARAM_STR); $stmt->bindParam(':yas', $yas, PDO::PARAM_INT); $stmt->bindParam(':sifre', $sifre_hashed, PDO::PARAM_STR); $stmt->bindParam(':skin', $skin, PDO::PARAM_STR); $stmt->execute();
