ncelikle web sitenizde üyelerin yorum yapabileceği form yada ziyaretçi defteri hazırlayacaksanız html kodlarını pasif hale getirmeniz gerekir. Çünkü bazı denyolar js kodları sokarak saçma sapan şeyler yapabilir rn. alert diyebilr. Bu yüzden formdan gelen bilgideki html kodlarını pasifleştireli KOD:form = TRIM(Server. HTMLEncode(request. form ne yaptık burda Server. HTMLEncode ile html kodlarını engelledik TRIM ile de forumun sağındaki ve solundaki boşlukları temizledik. Bu yolu replance kullanarakya yapabiliriz o da $yle olucakKOD:form = replace form = replace burda ise < ve > karakterlerini engelledik bunu daha da genişletebiliriz rn <script> engelleyebiliriz. Başka bir yntem ise yine replance kullanarak bir function yazmaktır KOD:Function cevir form = Replace(form,"<","& lt;", 1, -1)form = Replace(form,">","& qt;", 1, -1)cevir = formEnd Functionform = cevir(request. form renkeleri çoğaltabiliriz tabi değerleri boşa da eştitleyebiliriz. Anladınz sanırım. Bir de sql injeksiyon açıkları var. Giriş formuna 'or' yazarak giriş yapabiliriz bunu da replance veya function ile ' karakterini engelleyerek yapabiliriz.$yle olucak ; KOD:form = replace burda ' karakterini boşa eşitledik yani 'or' yazınca bize or diye gelecek. Eğer bir giriş formu hazırlıyorsanız = yerine <> karakterini kullanmanızı tavsiye ederima=b >>> burda a b ye eşittir deriza<>b >>> burda ise a b ye eşit değilmidir deriz. o zaman a=b eşit not a<>b olurrn. KOD:a=1b=2if a=b thenresponse. write "a ve b eşitttir"elseif not a<>b thenresponse. write "a ve b eşittir"end ifyukarıda anlattığım gibi a=b ve not a<>b eşittir. 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. Bu olayıda replance ile engelleyebiliriz. rneğin ID no alıyorsanız kod $u $ekilde olacaktırKOD:if not ISNumeric THEN response. endend ifyani id no sayı değilse işlemi durdur dedikyada function kullanarak yapılmış genelde kullanılan şyle bir şey var ;KOD:function security 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=dataend functionform = security(request. querystring burda bir çok zararlı karakteri engelledik bunu da kullanabilirsinizÜyelik sistemi tam olarak hazırlanmış http://www.tahribat.com/forumdisplayfolder. asp?highlight=asp%20üyelik%20sistemi&folderid=48438 sayfasını inceleyebilirsiniz. Benim aklıma gelenler bu kadar. Eğer aklınıza başka bir şey gelirse pm atın veya konuya cevap yazın konuyu genişletelim ;)

ha birde bilmem farkettinizmi tbt'de de ' yazınca karşı tarafa " diye çıkıyor XD

asp için güvenliği sağlamak nisbeten kolay. bana kalırsanız, javascriptte güvenliği sağlamak üzerine duralım. günümüzde bircok sitede tonca javascript kullanılıyor. bunların cogunun ne gibi dındınılara sebebiyet vereceği hakkında bilgimiz çok az. konu hakkında bilgisi olanlar paylaşırsa güzel olur. rn: son zamanlarda kafama takılan bir olay. ajax kullanıyorum ve veriyi sayfalara ayırmışım, ve bunları javascript:Veriler(1) sayfa javascript:Veriler(2) sayfa diye çağırıyorum. sorun şurda başlıyor: javascript:veriler(alert bi rnekte burdan vereyim. mesela; javascript:prompt(location. href ,'folderid=69543&sayfa=1#682597') gibi;

kesinlikle :) js de baya bi kasman lazım ayrıca açık kaynak kodu olduqundan daha da zorlaşıyor

http://www.tahribat.com/forumdisplayfolder. asp?highlight=&folderid=69522 buraya ekleseydin keşke

Bir de mdb'ye üyelerinizin veya kendi admin panel $ifrenizi md5 sha264 vb. algoritmalar ile $ifreleyebilirsiniz. Bu sayede db'yi indirseler bile biraz uqraştırıcaz eğer 7-8 haneden fazlaysa baya bi uqraşıcaklardır. gerekli bilgiye : http://www.tahribat.com/forumdisplayfolder. asp?highlight=md5&folderid=46483 adresinden ula$abilirsinizayrıca sayfalara rneğin arama giriş formu vb. gibi yerlere flood koyabilirsiniz. rn. formun bulunduğu sayfaya şu kodları ekleyelimKod:session =now if session ="" then session = 1 else session = session + 1 end ifBurada session kullandık bilmeyenler Foxxly nin hazırladığı Beyaz tahribat içinde yer alan session nesnesini okuyabilirler (Link : http://www.tahribat.com/forumdisplayfolder. asp?folderid=69001 )Session zaman şu ana eşittledik. Eğer sayfaa yeni girmişse yani gnderim 0 ise 1 olsun 2 ve üstü girişinde yani bi daha giriş yapmaya çalıştığında gonderim 1 artsın dedik buraya kadar fazla bir şey yok. rn giris. asp kaydet. asp vs. işlemin yapıldığı sayfaya ise şunları ekleyelim Kod:deger = datediff("s", session , now )If session > 5 AND DEGER < 60 thenResponse. write 60-deger & " sn. bekle. dolaş gel XD" Else'İşlemler olsun burdadaend ifBurda da 60 sn. içinde 5 kere giriş yaptıysa 60 sn. bekletiyorz XDXDNeyse bir de Proxy olayı var. Giriş için proxy yi engellemek isterseniz de $yle yapınKod:orjip = Request. serverVariables 'sizin ipnizproxip = Request. ServerVariables 'proxy ipniz'o zaman şyle yapalm XDif orjip<>proxip then'Site içeriğielseresponse. write "proxy haa Xd"end ifveya orjip=proxip de diyebilirdiniz o da şyle olurdu Kod:orjip = Request. serverVariables 'sizin ipnizproxip = Request. ServerVariables 'proxy ipniz'o zaman şyle yapalm XDif orjip=proxip thenresponse. write "proxy haa Xd"end if