Sql&xss korunma yöntemleri...

çağdaş001

Uzman üye
29 May 2009
1,379
1
*
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.
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.