SQL Innection'dan Korunmak

Sitelere yapılan SQL Innection açığını kapatmak ve sitenin güvenliğini arttırmak nasıl mümkün olur?

Sitelere yapılan SQL Innection açığını kapatmak ve sitenin güvenliğini arttırmak nasıl mümkün olur?

Günde milyonlarca site hackleniyor. SQL Innection'la bu açığı bırakan da PHP'ye yeni başlayanlar...

Bu açığı nasıl kapatırız, bu durumdan nasıl korunuruz?

Öncelikle koru.php diye dosya açıp içine:


function sil($yazii){



$geleni = array("'");

$takasi = array("");



$sistemi = str_replace($geleni, $takasi, $yazii); 

return $sistemi;

}



yazalım. Böylece SQL Innection'a neden olan ' silmiş oluyoruz. Bu koru.php her sayfada include edin.

Peki, sayfalarda bunu kullanıcağız?


$_POST['veri'];



yerine artık


sil($_POST['veri']);



diye kullanacağız. Get metodu da dahil. Yani veri çekeceğimiz yerlere hep böyle yapacağız. Bir örnek vereyim.


include("koru.php");

$a = sil($_GET[veri]);

$b = sil($_POST[veri]);



Kolay gelsin.

Sorularınızı yorum olarak altta yazarsanız yanıtlıyabilirim.
  • Etiketler;
Yorum Yaz

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

Ders için teşekkürler. Aynı işlemi strip_tags fonksiyonuna yaptırmak daha güzel olmaz mı diye düşünüyorum. Sql injectionsa karşı korunmada strip_tags fonksiyonu daha işlevsel olabilir diye düşünüyorum. İyi Çalışmalar.
SQL Injection olabilir mi acaba bu atağın ismi?Ayrıca bu yazılan fonksiyon tam manasıyla korumuyor sql injectiondan.
musabunix arkadaşımızın dediği gibi strip_tags ilede olur ama ben böyle anlattım bu da olur bunu yaparsanız veri çektikten sonra her yerde strip_tags kullanımı için derdiniz kalmaz çünkü bu ' siliyor Pierce_MVP arkadaşım bu sql innection açığıdır mysql işelmlerini durdurarak hackerın mysql işlemlerini yapmasına neden olur.
bu arada söytlemeyi unuttum strip_tags komutu html karakterlerini siliyor strip_tags ile yaparsanız html kod yollarken strip_tags html komutlarını siler en iyisi bu fonksiyonu kullanmak ama htmlde silinsin diyorsanız strip_tags kullanabilirsiniz
SQL innection diye bir açık yoktur kardeşim.Bu konu birkaç Türk sitesinde aynisiyle var.Sonuçta mysqle sql kodu enjekte diyorsun adı da doğal olarak SQL Injection oluyor.
kardeş post kasmak istiyorum ama dediğin doğru sql innection için kod injekte edip hackliyorsun türk sitelerinde var demişsin bu konuyu ilk kez ben burda anlattım ama diğer siteler de görüysen ya yardım için onlara anlatmışımdır yada burdan alıntı yapmışlardır ben burda anlattım alıntı yapmadım sql innection tanımında doğru sağol :)

Yukarı Git