Merhaba beyler.
Bu yazıda Sql İnjection nedir ne işe yarar nasıl yapılır ve sonucu ne olur bakalım.
Sql İnjection nedir ? Sql İncection; Sql sorgularının arasına dışarıdan müdahale ile yeni veri ekleme işlemine denilebilir.
Günümüzde Fremawork’ler sayesinde neredeyse sql injection kalmadı diyebiliriz ama yine manuel kod yazan arkadaşlar ve bu alanda yeni olanlar için basit bir anlatım yapalım.
Şimdi basit bir betik ile sql injection yapalım bu arada siz de nasıl yapılır ve önlemi nasıl alınır görürsünüz.
$baglan = mysq_connct ("localhost", "root" ""); mysq_select_db("slaweally","$baglan"); $sql = "SELECT * FROM people WHERE id = '$_GET[İD]' "; $sonuc= mysq_query($sql,$baglan); while ($row=mysql_fetch_array($sonuc)) { echo $row ['ad']." "; echo $row['soyad']."<br /> "; } echo "<br /> "; echo "$sorgu: "$sql;
Şimdi sql injection açığı meydana getirdik peki bunu nasıl kapatacağız ?
$input ="Veriler kontrol etcez pampa"; if (preg_match("/-[\-]{2,}|[;]|[']|[\\\*]/", $input)) echo "sql Aradığınız tespit edildi"; else echo "giriş yaptın hafız ";
<% Fonction security (veri) veri = replace (veri , "'","",1-1,1) veri = replace (veri , "\","",1-1,1) veri = replace (veri , "|","",1-1,1) veri = replace (veri , "#","",1-1,1) veri = replace (veri , "*","",1-1,1) veri = replace (veri , "!","",1-1,1) veri = replace (veri , "&","",1-1,1) veri = replace (veri , "%","",1-1,1) veri = replace (veri , "=","",1-1,1) veri = replace (veri , "and","",1-1,1) veri = replace (veri , "'s","",1-1,1) veri = replace (veri , "'a","",1-1,1) veri = replace (veri , "/","",1-1,1) sevurity = veri end function %>
SQL Injection Saldırıları Önlemek için İpuçları
1- Cookie değerleri dahil olmak üzere tüm kullanıcı girişleri için güçlü bir sunucu taraflı doğrulama uygulayın.
2- Kullanıcı girdilerinde özel karakterlerden kaçın veya filtreleme yapın.
3- Mümkün olduğunca stored procedure kullanın.
4- Parametreli sorgu veya ORM kullanın.
5- Sql Server exec komutunu kullanmaktan kaçının.
6- Uygulama içinden veritabanına bağlanmak için sa kullanıcısını kullanmaktan kaçının. Sorguları çalıştırmak için düşük özellikli bir hesap kullanmaya dikkat edin.
Evet arkadaşlar Sql İnjection açığı oluşturma ve nasıl kapatılır onu anlatmaya çalıştık.
(Makale baya bir eski arkadaşlar 2013’te paylaşmıştım yeniden bir blogta buldum kod içindeki “slaweally” görünce hatırladım benim olduğunu 🙂 )
Neyse selametle arkadaşlar..
eyvallah müdür senin bu blogda olmasa 🙂
Ne demek reyiz Her zaman 🙂
Güzel yazmışsın ama bu devirde sql mi kaldı, zaten sende söylemişsin yukarda :::::)
Aynen hacı bende söyledim yazı içinde ama yinede bilmekte fayda var.
SQL Injection Saldırıları Önlemek için İpuçları
1- Cookie değerleri dahil olmak üzere tüm kullanıcı girişleri için güçlü bir sunucu taraflı doğrulama uygulayın.
2- Kullanıcı girdilerinde özel karakterlerden kaçın veya filtreleme yapın.
3- Mümkün olduğunca stored procedure kullanın.
4- Parametreli sorgu veya ORM kullanın.
5- Sql Server exec komutunu kullanmaktan kaçının.
6- Uygulama içinden veritabanına bağlanmak için sa kullanıcısını kullanmaktan kaçının. Sorguları çalıştırmak için düşük özellikli bir hesap kullanmaya dikkat edin.
Ek bilgi olarak yazıya ekliyorum 🙂 Teşekkürler.
Bilgi için teşekkürler sizin de belirtiğiniz gibi sql kalmadı ama bilmek iyi bence eline sağlık
Güzel bir makale olmuş sql artık fazla kullanılmıyor yinede bilgilendirdiğin için teşekkürler