adres satırına girilen illegal komutaları deneyenlere ban uygulama.
adres satırında
?id=54$saslas
vb şekilde url ulaşmaya çalışanları
nasıl tespit edebiliriz.
ve bu tespit ettiğimiz kişilere 403 sayfasına nasıl yönlendirebilir.z
requrest uri ile alırız sanırım ama bu sefer elle girildiği belli olmaz
normal sayfalarda da sorun çıkartabilir gibime gelmdi
bunla ilgili fikir kod parçacığı veya kısa bir teori anlatabiecek varmı acaba.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
umityatarkalkmaz
onları yapabileceğini zannetmiyorum link yapısından ziyade zaten herhangi formlarda token kullanıyorum ve bu tokenlerin atıyorum 1 dk gibi süreleri mevcut.
benim tam olarak istediğim
kişi detay.php?id=4 olarak girmeyi denediğinde 3-5 tekrar sonra ip üzerinden banlanması belirli bir süre sonra banı kalkması
banlamaya kadar işlemleri az çok kafamda tutuyorum ama öncesini düşünemeidm bir türlü.
illegal giriş deneyince ip db yada txt ye yazdırılır o txt header.php de sorgulatırılır varsa siteye giremez yoksa girer
3 gün geçmiş ip leride yine aynı şekilde silebiliriz.
ama işte detay.php?id=5 aslında bu yol var sitede ama detay.php/5 şeklinde açılıyor kişi detay.php?id=5 bu şekilde girişini her şekilde engellemek.
Gayet basit
<?php
if(!is_numeric($_GET["id"])){
header('location:seninsayfa.php');
exit;
/*
Kendine bir hata günlük sayfası oluşturabilirsin
yada veri tabanında tutarsın
Yeni kayıt olduğunda gelen bildirimlerden bakarsın yönetim panelinden
hatta telefonuna mesaj olarak da gönderilmesini sağlayabilirsin.
Kendi tanımlayıcı kodlarını veri tabanına kaydedebilirsin
Örn :
Kodlar = 1,2,3 vb.
veri tabanında errorcode alanına 1,2,3 bunlardan birini kaydedebilirsin.
Mesela
numeric değilse kod : 1
db de kayıtlı olmayan bir id ise : 2
yukarıda if else de uygun karşılığı olan başka bir senaryoya göre 3, 4,5 ne kadar gerekli ise kodları çoğaltabilirsin
*/
}
Aslına bakarsan bu kodları sitenin tamamı için kullanabilirsin
db hatası, yada mysql hataları vb. çoğaltılabilir.
?>
Eğer sitenin link yapısını çözmüş biri varsa sıkıntı çıkarabilir. Önlem almak kolay session oluştur o session varsa girilen parametle ile işlem yapılsın.
Aklıma gelen 2. problem link yapını bilen adam delete işlemi gibi bir işlemin yolunu biliyorsa oraya sql yazıp tablolarını alabilir. Çözüm gene kontrollden geçiyor kontrol için en basit yol session oluşturmak yada işlemin öncesinde yetki kontrölü yapmak eğer login olan biri varsa ve yetkisi adminse silsin gibi bir şey yazdıysan ve sonra sildiysen sql yazamaz ve tablolarına senden izinsiz biri işlem yapmamış olur