Sql İnjection ve Xss nedir Gibi genel bilgileri vermeyeceğim .Burada Sql injection ve Xss Attacklarınıda ele almayacağım.SAdece bu saldırı tekniklerinden korunmayı ele alıcağım.Ama yinede bu konuyu okumadan önce belirttiğim türdeki dökümanları okumanızı tavsiye ederim.
Gel Gelelim Artık Tüm dünyada olduğu gibi Türkiye’dede Web Security’e büyük bir önem veriyorLar.Bizde nasıL önLem aLabiLeceğimzi beLirteceğiz.
Sql İnj & Xss Attacklarında dışarıdan kod çağırak olduğunu biliriz.Şimdi bundan yola çıkarak korunmayı anlatacağım.
SQL Injection İçin : ’ Karakteri.
Xss İçin : < ; : ( ) Karakterleri.
Bu verdiğim Karakterler Sql’de ve html’de İşlevi Olan Karakterlerdir. Biz Bu SaLdırı Türlerine Engel Olabilmek İçin Bu Karakterleri Tüm bize Gelen Veriler İçerisinde Kontrol Etmeliyiz Vede Daha Sonra Script İçerisinde Kullanmalıyız.
Bu Karakterleri Gelen Veriler İçerisinde Var Olup Olmadiklarini Kontrol Edip sonra işlem YaparsaK korunmuş Oluruz.
Şimdi Asp ve Php Dilleri için Bunlardan Korunmayı Göstereceğim :
Asp için Ele Alalım ;
<%
firstname = Request.QueryString("firstname")
lastname = Request.QueryString("lastname")
firstname = replace(firstname,"’","")
firstname = replace(firstname,"(","")
firstname= replace(firstname,")","")
firstname = replace(firstname,";","")
firstname = replace(firstname,":","")
firstname = replace(firstname,"<","")
lastname = replace(lastname,"’","")
lastname = replace(lastname,"(","")
lastname = replace(lastname,")","")
lastname = replace(lastname,";","")
lastname = replace(lastname,":","")
lastname= replace(lastname,"<","")
reponse.write firstname & "<br>" & lastname
?>
Şeklindeki Bir Asp Dosyasına, firstname Olarak Yollanacak Değer Alttaki Gibi Olursa:
test.asp?firstname=TurkWarrior**********alert(’test’);</script>
Çıktısı Şu Şekli Alacaktır.
--------------------------------
TurkWarriorscript>alerttest/script>
---------------------------------
şimdi Burada Yaptiğimiz replace İşleminde Görmüş Olduğunuz Gibi ’,<,;,:,(,) Karakterlerini boş olarak değiştirdi.Eğer replace yapmasaydık Çıktı Şu Şekil
de Olacaktı.
--------------------------------
TurkWarrior**********alert(’test’);</script>
---------------------------------
Böylece script tarafından size bir alert verecekti.Bunlada sniffer vs hazırlayabilir cookie çekebilirdik.
Şimdi Php İle bu yaptıkLArımızı Nasil Yapacağımıza Bakalım :
<?PHP
$firstname = $_GET["firstname"];
$lastname = $_GET["lastname"];
$firstname = str_replace("’","",$firstname);
$firstname = str_replace("(","",$firstname);
$firstname = str_replace(")","",$firstname);
$firstname = str_replace(";","",$firstname);
$firstname = str_replace(":","",$firstname);
$firstname = str_replace("<","",$firstname);
$lastname = str_replace("’","",$lastname);
$lastname = str_replace("(","",$lastname);
$lastname = str_replace(")","",$lastname);
$lastname = str_replace(";","",$lastname);
$lastname = str_replace(":","",$lastname);
$lastname = str_replace("<","",$lastname);
echo $firstname."<br>".$lastname;
?>
örnekteki Gibi Bir PHP Dosyasına, firstname Olarak Yollanacak Değeri Altta Belirttiğim Gibiyse:
test.php?adi=TurkWarrior**********alert(’test’);</script>
Çıktısı Şu Şekli Alacaktır.
--------------------------------
TurkWarriorscript>alerttest/script>
---------------------------------
Burada Yaptiğimiz str_replace İşleminde Görmüş Olduğunuz Gibi ’,<,;,:,(,)
Karakterlerini boş olarak değiştirmekdi.Eğer replace yapmasaydık Çıktı
Şu Şekilde Olacaktı.
--------------------------------
TurkWarrior**********alert(’test’);</script>
---------------------------------
Böylece script tarafından size bir alert verecekti.Bunlada sniffer vs hazırlayabilir cookie çekebilirdik.
Ayrıca php için artı bir ekleme yaparsak, Sunucu Üzerindeki Config de php.ini içerisinde
magic_quotes_sybase = On
ve
magic_quotes_runtime = on
Tipinde Ise, ’ Karakteri Zaten Etkisiz Kalacaktır. Php "\\\\" Kapaniş Karakteri Her ’ Karakterini
Kendisiyle Birlikte Zaten Replace Edecektir. Ancak Bu Xss İçin Bir Engel Değildir. Biz Her İhtimale Karşılık Olarak Bu Kontrolleri Yapmalıyız.
Gel Gelelim Artık Tüm dünyada olduğu gibi Türkiye’dede Web Security’e büyük bir önem veriyorLar.Bizde nasıL önLem aLabiLeceğimzi beLirteceğiz.
Sql İnj & Xss Attacklarında dışarıdan kod çağırak olduğunu biliriz.Şimdi bundan yola çıkarak korunmayı anlatacağım.
SQL Injection İçin : ’ Karakteri.
Xss İçin : < ; : ( ) Karakterleri.
Bu verdiğim Karakterler Sql’de ve html’de İşlevi Olan Karakterlerdir. Biz Bu SaLdırı Türlerine Engel Olabilmek İçin Bu Karakterleri Tüm bize Gelen Veriler İçerisinde Kontrol Etmeliyiz Vede Daha Sonra Script İçerisinde Kullanmalıyız.
Bu Karakterleri Gelen Veriler İçerisinde Var Olup Olmadiklarini Kontrol Edip sonra işlem YaparsaK korunmuş Oluruz.
Şimdi Asp ve Php Dilleri için Bunlardan Korunmayı Göstereceğim :
Asp için Ele Alalım ;
<%
firstname = Request.QueryString("firstname")
lastname = Request.QueryString("lastname")
firstname = replace(firstname,"’","")
firstname = replace(firstname,"(","")
firstname= replace(firstname,")","")
firstname = replace(firstname,";","")
firstname = replace(firstname,":","")
firstname = replace(firstname,"<","")
lastname = replace(lastname,"’","")
lastname = replace(lastname,"(","")
lastname = replace(lastname,")","")
lastname = replace(lastname,";","")
lastname = replace(lastname,":","")
lastname= replace(lastname,"<","")
reponse.write firstname & "<br>" & lastname
?>
Şeklindeki Bir Asp Dosyasına, firstname Olarak Yollanacak Değer Alttaki Gibi Olursa:
test.asp?firstname=TurkWarrior**********alert(’test’);</script>
Çıktısı Şu Şekli Alacaktır.
--------------------------------
TurkWarriorscript>alerttest/script>
---------------------------------
şimdi Burada Yaptiğimiz replace İşleminde Görmüş Olduğunuz Gibi ’,<,;,:,(,) Karakterlerini boş olarak değiştirdi.Eğer replace yapmasaydık Çıktı Şu Şekil
de Olacaktı.
--------------------------------
TurkWarrior**********alert(’test’);</script>
---------------------------------
Böylece script tarafından size bir alert verecekti.Bunlada sniffer vs hazırlayabilir cookie çekebilirdik.
Şimdi Php İle bu yaptıkLArımızı Nasil Yapacağımıza Bakalım :
<?PHP
$firstname = $_GET["firstname"];
$lastname = $_GET["lastname"];
$firstname = str_replace("’","",$firstname);
$firstname = str_replace("(","",$firstname);
$firstname = str_replace(")","",$firstname);
$firstname = str_replace(";","",$firstname);
$firstname = str_replace(":","",$firstname);
$firstname = str_replace("<","",$firstname);
$lastname = str_replace("’","",$lastname);
$lastname = str_replace("(","",$lastname);
$lastname = str_replace(")","",$lastname);
$lastname = str_replace(";","",$lastname);
$lastname = str_replace(":","",$lastname);
$lastname = str_replace("<","",$lastname);
echo $firstname."<br>".$lastname;
?>
örnekteki Gibi Bir PHP Dosyasına, firstname Olarak Yollanacak Değeri Altta Belirttiğim Gibiyse:
test.php?adi=TurkWarrior**********alert(’test’);</script>
Çıktısı Şu Şekli Alacaktır.
--------------------------------
TurkWarriorscript>alerttest/script>
---------------------------------
Burada Yaptiğimiz str_replace İşleminde Görmüş Olduğunuz Gibi ’,<,;,:,(,)
Karakterlerini boş olarak değiştirmekdi.Eğer replace yapmasaydık Çıktı
Şu Şekilde Olacaktı.
--------------------------------
TurkWarrior**********alert(’test’);</script>
---------------------------------
Böylece script tarafından size bir alert verecekti.Bunlada sniffer vs hazırlayabilir cookie çekebilirdik.
Ayrıca php için artı bir ekleme yaparsak, Sunucu Üzerindeki Config de php.ini içerisinde
magic_quotes_sybase = On
ve
magic_quotes_runtime = on
Tipinde Ise, ’ Karakteri Zaten Etkisiz Kalacaktır. Php "\\\\" Kapaniş Karakteri Her ’ Karakterini
Kendisiyle Birlikte Zaten Replace Edecektir. Ancak Bu Xss İçin Bir Engel Değildir. Biz Her İhtimale Karşılık Olarak Bu Kontrolleri Yapmalıyız.
Son düzenleme: