Hizmetlerimiz
       Web Tasarım
       Grafik Tasarım
       Ürünlerimiz
       Seo Uygulamaları
       Hosting Hizmetleri
       Domain Hizmetleri
       Referanslarımız
        Müşteri Alanı
      Müşteri Kayıt
      Müşteri Paneli Giriş
      Ödeme Bildirimi
      Ticket
        Haberler

Tüm Haberler >>   

        Son Projeler
        Son Konular
    ASP de güvenlik önlemleri  

Eğer sitenizde yorum yapma veya herhangi birşey eklettirme, yaptırma gibi isler yapıyorsanız bunlar için bazı kontroller yapmak gerekir.

Mesela ziyaretçinin yorumunda yazdığı html kodunu pasif hale getirmeniz lazım.

form TRIM(Server.HTMLEncode(request.form(form)))

Bu kodda TRIM ile formun basındaki ve sonundakı boslukları kaldırır.HTMLEncode ise zararlı HTML kodlari ayıklar.

2. yol ise

Eger kullanıcı yorum yerine meta refresh kodu koyarsa sayfaniz belirli bir saniye de yönlendirme ile baska sayfaya gönderilir.Bunun benzeri ASP ile de yapilmaktadir.Response.redirect ile yapılabillir.Bunları önlemek içinde

<
form replace(form, <, & lt;)
form replace(form, >, & qt;)
>

Kodlarını kullanrak açma, kapama kodlarını pasif hale getirirsiniz.
Bunların dışında Replace komutumuzla argo kelimelere sansür koyabilirsiniz.

Not : Eger Html Encode ile ile formu alirsaniz türkçe karakterler gözükmeyecektir.Bu durumda formu HTML Encode ile almaniz yeterli olacaktir.2. yol da olur.

Ben size ikinci yolu öneriyorum.Neden derseniz örnek vereyim.Mesela formdan aldiginiz :) smiley(gülücük)i herhangi bir resimle replace ettirmek isterseniz 2. yolu kullanmalısınız.

Baska bir açıkta üyelik sistemleri gibi form ile giriş yapılan uygulamalarda OR kelimesinin giriş yapmasıdır.Eğer kullanıcı adını yazar ve şifreye bu yazılırsa ve tedbiri alınmamışsa o zaman kullanıcı şifreyi bilmeksizin o kullanıcıyla giriş yapabilir.Bu tehlikeyi önlemek içinde

< form replace(form, , ) >

Böylece yazılması birşey idafe etmez.

Buna SQL INJECTıON da dahildir.

Siz bir querystringi işlettiğiniz sayfada aldığınız querystringi kontrol etmezseniz ve kişi ; dro(p) table tablo gibi bir komut yazarsa SQL komutumuz olmadığı halde bu kodu işletir ve o tablonun içindeki verilerin tamamını uçurur.
Bunu gene üstteki replace ile engelleyebilirsiniz.

Tavsiyem eğer ID numarası olarak alıyorsanız şu kontrolden geçirmeniz gerekir.

< IF NOT ISNumeric(form) THEN response.end >

gibi bir kod kullanmanız yeterli olacaktır.Böylece ID numarası yerine yazı yazıldığı zaman işlemi durdurursunuz ve SQL Injectionı engellemiş olursunuz.

Bunların hepsi için yazılan şu fonksyonu kullanabilirsiniz.Bu fonksiyon ile bütün Injection açıklarınıda kapatabilirsiniz.Böylece queystringde bir probleminiz kalmaz.Bu fonksiyonu sayfanızın en başına koyun.

<
function security(data)
data Replace (data ,,,1,-1,1)
data Replace (data ,,,1,-1,1)
data Replace (data ,&,,1,-1,1)
data Replace (data ,,,1,-1,1)
data Replace (data ,,,1,-1,1)
data Replace (data ,,,1,-1,1)
data Replace (data ,<,,1,-1,1)
data Replace (data ,>,,1,-1,1)
data Replace (data ,,,1,-1,1)
data Replace (data ,/,,1,-1,1)
data Replace (data ,\,,1,-1,1)
data Replace (data ,And,,1,-1,1)
data Replace (data ,,,1,-1,1)
data Replace (data ,,,1,-1,1)
data Replace (data ,,,1,-1,1)
securitydata
end function
>

Fonksiyonumuz bu.
Querystringleri alırkende

< bilgi security(request.querystring(bilgi)) >

gibi alırsanız bu fonksiyonun kontrolünden geçirerek ve açıkları elemine ederek almış olursunuz.



Okunma : 153
 
 

 
 
 
Bugün Tekil : 2
Toplam Tekil : 3651
Toplam Çoğul : 27402
İp No : 38.107.191.114

Display Pagerank

 

ENSOFTdizayn.NET
2009-2010 Her Hakkı Saklıdır

KareOfis | Rulet Sohbet | Dizi Seti