ASP Rehberi , ASPRehberi.Net - ASP ve ASP.NET Konuları , Scriptleri , Hosting , Programlar , Araçlar

 # 8 Eylul 2008, Pazartesi
 
 #  Kategoriler » ASP » Makaleler
 

ASP'de Güvenlik Önlemleri Bu içeriğin puanı : 4,8 5509 Görüntülenme
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 yorum'unda yazdığı html kod'unu 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 form'u 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 querystring'i işlettiğiniz sayfada aldığınız querystring'i kontrol etmezseniz ve kişi '; drop table tablo gibi bir komut yazarsa SQL komutumuz olmadığı halde bu kodu işletir ve o tablo'nun 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 queystring'de bir probleminiz kalmaz.Bu fonksiyon'u 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 ,"Chr(34)","",1,-1,1)
data = Replace (data ,"Chr(39)","",1,-1,1)
security=data
end function
%>

Fonksiyonumuz bu.
Querystring'leri alırkende

<% bilgi = security(request.querystring("bilgi")) %>

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

Bir sorununuz olursa forumumuzda paylaşabilirsiniz.
 Telif : Serdar Toros | Eklenme : 26 Aralık 2004, Pazar
 
 

Bu içerik hakkında 4 yorum yapılmış

 

 
İsminiz :
Mail Adresiniz :
Yorum
:
   

     

// Gizle
ASP Rehberi Mini Editör

  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle
Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle
 Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle Form 'a gülücük ekle Form 'a gülücük ekle


 
 
Yorumlar(4) Not : Yorumlar zamana göre son yorumdan ilk yoruma doğru(azalan) biçimde sıralanmıştır.
Yorumlarınız site yöneticileri tarafından onaylandıktan sonra eklenecektir.
+ Eline sağlık dediklerini biliyordum ama senin burda topladıklarını öğrenene kadar çok zaman kaybetmiştim.Emeğine bileğine sağlık gerçekten...
Yazan : ömer can | Zaman : 10 Ekim 2007 Çarşamba, Saat 08:11
 
+ çok teşekkürler. benim gibi sadece internetten araştırıp ögrenenler için çok önemli bir bilgiydi. güvenlik ile ilgili amatörlerin içinde boğulmayacağı, sade yazılarınızın devamı dileğiyle iyi çalışmalar...
Yazan : alia | Zaman : 16 Mayıs 2007 Çarşamba, Saat 22:45
 
+ kardeş ellerine sağlık çok sağol. ben bunları web sayfamda yayınlayacağım tabi iznin olursa olmasa da sağlık olsun
Yazan : hamdullah | Zaman : 17 Şubat 2006 Cuma, Saat 17:53
 
+ çok teşekkürler bundan sonra daha güvenli asp scriptleri yazmacağıma emin olabilirsiniz...
Yazan : 54N4N3 | Zaman : 16 Haziran 2005 Perşembe, Saat 20:26
 
 .: Sayfalar  1.
 
# Kategori'nin Yenileri

İsim

Hit

Turuncu Galeri (tr)

3590

Haydi okullar internete.... (tr)

264

rc0der Reklam Sistemi v1.0 (tr)

811

HiddenChest İş ve Bayilik Başvuru Formu (tr)

1714

TradeSE E-Ticaret Yazılımı (tr)

459

Link Portal 2007 3 Temalı (tr)

1980

Gupse Medya Linkleri v0.1 (tr)

536

HiddenChest Ziyaretçi Defteri (tr)

1834

HiddenChest Kayan Haber (tr)

2377

HiddenChest Aktif/Pasif Haber Sistemi 1.1 (tr)

1133

 
 
# Kategori'nin Popülerleri

İsim

Hit

IIS Kurulumu ve Yazma İzni

76703

Üyelik Sistemi Yapımı

55502

Veritabanı Tablo İşlemleri

35241

MS SQL Server - 1

33812

Hazır Site v2.1 (tr)

29617

Klasör Şeklinde Linkler(404 Yönetimi)

24578

Sayfaları şifreleme(ENCODE)

22319

MS SQL Server - 2

21985

Include Yöntemleri

18091

MS SQL Server - 3

15660

 
  # AKTİF ÜYELER
Aktif üye yok
 
 
 

 
 ASP Rehberi © 2004 - 2008
 Tasarım ve Programlama : Serdar TOROS
 ASPRehberi.Net web sitesi SiDEnet sunucularından yayınlanmaktadır.

[ 0,25 ]    ASPRehberi.NET RSS Kaynağı   Bu site Microsoft SQL Server Veritabanı kullanmaktadır

eXTReMe Tracker