Php'de Sql Injection'a Karşı Savunma

Sql Injection' a karşı sisteminizi güçlendirme yollarını ele alalım.

Sql Injection' a karşı sisteminizi güçlendirme yollarını ele alalım.

Herkezin bildiği gibi form verilerinde oynama yaparak sisteme sızmaya sql injection diyoruz. Sistemlerin güvenliğinden sorumlu olan kişiler genelli sistemin zayıflıklarını kendileri test eder ve bazen bazı noktaları atlarlar. Genelde atladıkları nokta budur. Programcı'nın bilgisinin eksikliğinden ya da dikkatsizliğinden kaynaklanan bu hata geçmişte birçok sistemin çökertilmesine neden olmuştur.

Bilinen belli başlık sql injection yapılmamasını sağlayacak kodlar arasında;


<?php  

       $text 
"yaz' or 'a'='a "

      
$new_text str_replace(array('/','#','admin','or','=','and','-','(',')','[',']','|','&amp;amp;amp;amp;',' '),"",$text); 

      echo 
$new_text

      
?> ?>

  • Etiketler;
M. Çağdaş Saygılı
Hakkında bilgi en kısa sürede eklenecektir.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

arasında? eksik kalmış sanırım?
Evet kod dizisinden sonra mevcuttur diyip noktalamam gerekiyordu. Dikkatsizliğime gelmiş.Birde bu şekilde bir kod kullanılabilir. [code] function secure($data) { $data = addslashes(mysql_escape_string($data)); return $data; } [code] Sonrasında aldığımız tüm verileri secure function'ından geçirerek sql injection a karşı önlem alabiliriz.
Peki Biz Bunu ust.php ye include =("sql.php"); olarak mı göstericez yoksa host kendisimi tanıyor ?
db.php ye function olarak tanımlayabilirsin. Sonrasında da form verilerini ; $cagdas=secure($_POST[cagdas]); olarak düzenlemen gerekir.
addslashes kullanarak yorumda verdiğiniz kod yeterli sanırım. teşekkürler.
"addslashes" bu kodu dün kursta özel bi phpci arkadaşimiz anlatmıştı.. bize verdiği örnek şu şekil sadece arama textboxlarda değil.. formlardada get ve post methodlarındada dikkat etmemiz gerekiyor.. çok teşekkürler..
Yahu çağdaşı yormayın bence onun sölemek istediği; Sql dizisi içinde input olarak aşagıdakiler bulunmamalıdır. gerisi size kalmıs nerede sql ile sorgu yapıyorsanız orada bu karakterlerin girişine izin vermemelisiniz. Kısacası bu web bileşenleri olan bişey olmak zorunda değil php olması hiç şart değil. get yada post olmasıda sart değil. '/','#','admin','or','=','and','-','(',')','[',']','|','&amp;amp;amp;amp;amp;',' '
=) Gncytnk sadece post ya da get kontrolleride değil. Daha döndürülen tüm sorgular ya sql den çekilen veriler. İd lerin md5 ile sifrelenmesi ya id yerine karekter bazlı rakkamların kullanılması (alt+sayı kombineleri) bunları kontrol etmek gerekir. Sadece sql injection için bilinen ve etkili yollardan 2 tanesi yazıyor yukarıda ama dediklerinde haklısın. ScGiZoO evet sağol. Olayın tam olarak özü budur. =)
biz bu kodu nasil kulanacaz ve nasil kayip edip nereye ekleyecegiz
gayet anlaşılır anlatılmış bi function yaparak herşeyi halledebiliriz
sql injection..bununla başa çıkarız dostum.herkesin zihnine saglık.teşekkürler

Yukarı Git