Asp'de Güvenlik Geniş Anlatım
-
Evet arkadaşlar hiç bir yerde geniş kapsamlı yoktu hep replace falan var ben siz kengi algoritmalarımıda vericem hep forumda soru soruduk birazda paylaşalım :D
1-)Replace ile sql ve form güvenliği;
Şimdi replace fonksiyonumuzu yazayım :
<%
function suz(veri)
veri = Replace (veri ,"'","[BAN]",1,-1,1)
veri = Replace (veri ,"=","[BAN]",1,-1,1)
veri = Replace (veri ,"&","[BAN]",1,-1,1)
veri = Replace (veri ,"%","[BAN]",1,-1,1)
veri = Replace (veri ,"!","[BAN]",1,-1,1)
veri = Replace (veri ,"#","[BAN]",1,-1,1)
veri = Replace (veri ,"<","[BAN]",1,-1,1)
veri = Replace (veri ,">","[BAN]",1,-1,1)
veri = Replace (veri ,"*","[BAN]",1,-1,1)
veri = Replace (veri ,"/","[BAN]",1,-1,1)
veri = Replace (veri ,"\","[BAN]",1,-1,1)
veri = Replace (veri ,"And","[BAN]",1,-1,1)
veri = Replace (veri ,"'","[BAN]",1,-1,1)
veri = Replace (veri ,"Chr(34)","[BAN]",1,-1,1)
veri = Replace (veri ,"Chr(39)","[BAN]",1,-1,1)
IF InStr(1,veri,"[BAN]",1) Then 'Eğer bu karakterlerden biri varsa ban.asp adresine yönlendiriliyor (saldırgan)
Response.Redirect "Ban.asp"
End IF
suz=veri
end function
%>Bu fonksiyon daha uzatılabilir
Şimdi bu fonksiyonu kullanmayı öğrenelim=Şimdi aşağıdaki kodlar replace edilmemiş olsun :
<%
formumuz = request.form("mesaj") >>> bu replace edilmemiş formumu
id= Request.QueryString("id") >>>Bu ise replace edilmemiş QueryString
%>
Şimdi fonksiyonumuzun kullanılmış hali yane güvenli:
<%
formumuz = suz(Request.form("mesaj"))
id = suz(Request.Querystring("id"))
%>
Replace ile süzmeyi anlatttım bu her yerde var
2-)IF Not IsNumeric yöntemi ;
<%
ID = REQUEST.QUERYSTRING("ID")
IF Not IsNumeric(REQUEST.QUERYSTRING("ID")) THEN
response.write "Lütfen Geçerli bir ID numarası girin."
response.end
END IF%>
Bu yöntem ile sadece id çeklen ( numara ) QUERYSTRING leri alabiliriz ama bunun daha daha güvenli hali için hem fonksiyon ile süzüp hemde bu yöntemi kullanırsak çok iyi olur öbür türlü pek işe yaramaz
yane :
<%
ID = suz(REQUEST.QUERYSTRING("ID"))
IF Not IsNumeric(suz((REQUEST.QUERYSTRING("ID"))) THEN
response.write "Lütfen Geçerli bir ID numarası girin."
response.end
END IF%>
3-)Siteye proxy ile girişi yasaklama :
Siteye proxy ile girişi yasaklarsanız ip ban alanların girmesi engellemiş olursunuz hemde birazda olsa ddos saldırılarını önlemiş olursunuz
<%
gercekip = Request.serverVariables("REMOTE_ADDR")
prliip = Request.ServerVariables("HTTP_VIA")
IF Not gercekip = prliip Then
response.redirect "ban.asp"
Response.END
END IF
%>4-)ddos flod koruma :
Bu yöntem bizzat ben geliştirdim işe yaramıyoda deil yana yarıyor
<%
'Coded by arkinfes
Dim suz(21)
' // saldırı yapabilecek programlar
suz(0) = "Wget"
suz(1) = "EmailSiphon"
suz(2) = "WebZip"
suz(3) = "MSProxy/2.0"
suz(4) = "EmailWolf"
suz(5) = "webbandit"
suz(6) = "MS FrontPage"
'//Bizim denyodan korunma
suz(7) = "Nightmare"
suz(8) = "Denyo"
suz(9) = "HolyOne"
suz(10) = "Tahribat"
suz(11) = "Launch"
suz(12) = "Denyo Launch"
'//Antirus,syn gibi prorramlardan korun
suz(13) = "Antirus"
suz(14) = "AventGrup"
suz(15) = "Robot"
suz(16) = "DDos"
suz(17) = "Flood"
suz(18) = "SYNDos"
suz(19) = "VTJBomber"
suz(20) = "Vai-Te Ja"
suz(21) = "Packet Storm"
' Degiskenleri bildir
Dim user_agent, host, document, referrer, cezaver' Kullanicinin bilgilerini alma
user_agent = Request.ServerVariables("HTTP_USER_AGENT")
host = Request.ServerVariables("REMOTE_ADDR")
document = Request.ServerVariables("SERVER_NAME")
referrer = Request.ServerVariables("HTTP_REFERER")' Bilgileri kontrol et
cezaver = 0
If InStr(user_agent, suz(0)) > -1 Then cezaver = 1
If InStr(user_agent, suz(1)) > -1 Then cezaver = 1
If InStr(user_agent, suz(2)) > -1 Then cezaver = 1
If InStr(user_agent, suz(3)) > -1 Then cezaver = 1
If InStr(user_agent, suz(4)) > -1 Then cezaver = 1
If InStr(user_agent, suz(5)) > -1 Then cezaver = 1
If InStr(user_agent, suz(6)) > -1 Then cezaver = 1
If InStr(user_agent, suz(7)) > -1 Then cezaver = 1
If InStr(user_agent, suz(8)) > -1 Then cezaver = 1
If InStr(user_agent, suz(9)) > -1 Then cezaver = 1
If InStr(user_agent, suz(10)) > -1 Then cezaver = 1
If InStr(user_agent, suz(11)) > -1 Then cezaver = 1
If InStr(user_agent, suz(12)) > -1 Then cezaver = 1
If InStr(user_agent, suz(13)) > -1 Then cezaver = 1
If InStr(user_agent, suz(14)) > -1 Then cezaver = 1
If InStr(user_agent, suz(15)) > -1 Then cezaver = 1
If InStr(user_agent, suz(16)) > -1 Then cezaver = 1
If InStr(user_agent, suz(17)) > -1 Then cezaver = 1
If InStr(user_agent, suz(18)) > -1 Then cezaver = 1
If InStr(user_agent, suz(19)) > -1 Then cezaver = 1
If InStr(user_agent, suz(20)) > -1 Then cezaver = 1
If InStr(user_agent, suz(21)) > -1 Then cezaver = 1
'// eşleşmeme durumunda ban.asp sayfasına yolluyoruz
If cezaver = 1 Then
' Sayfayi yönlendir...
Response.Redirect "ban.asp"
End If %>5-)Html kodlarını süzme =
<%
Server.HTMLEncode(Request.form("mesaj"))
%>
----------------------------------------------------------------------
Ne zamandır yapayım diyordum paylaştım sonunda
Arkın fescioğlu
-
şimdi bunlar algoritma ve sana ait öyle mi ?
hmm...
-
(sanki)kopyala yapıştır gibi duruyor hacı biraz düzgün yapsaydın boşlukları :O ha?
-
cordelian bunu yazdı:
-----------------------------
sanki kopyala yapıştır gibi duruyor hacı biraz düzgün yapsaydın boşlukları :O
-----------------------------hayır algoritma derken hepsi deil 4 özellik aklıma gelip yapmıstım bu arada bide zengin metin editorunde yapmıştım kodların hepsini tabloların içine koyup tabloları renklendirip yapmıstım tablolar çıkmamış ??
-
Fonksiyona da dizi değişkene de suz adını verince saçmalamıyor mu o script?
-
knuckle bunu yazdı:
-----------------------------
Fonksiyona da dizi değişkene de suz adını verince saçmalamıyor mu o script?
-----------------------------hayır ben şimdi örnek vermek amacıyla yazdım şimdi ikisinede normalde ayrı ad veriyorum
-
Hocam onu değiştirebiliyorsan değiştir. Belki birinin ihtiyacı olur ikisini birden kullanmak ister muvaffak olamaz acemi falan olur, hayın arkinfes demesin ardından.
Dizi değişkenler işimizi kolaylaştırmak için varlar ama sen maşallah tek tek yazmışsın şöylşe olsa daha iyi olmaz mı;
------
' Bilgileri kontrol et
cezaver = 0
For i = 0 To UBound(suz)
If InStr(user_agent, suz(i)) > -1 Then cezaver = 1
Next
'// eşleşmeme durumunda ban.asp sayfasına yolluyoruz
If cezaver = 1 Then
' Sayfayi yönlendir...
Response.Redirect "ban.asp" -
knuckle bunu yazdı:
-----------------------------
Hocam onu değiştirebiliyorsan değiştir. Belki birinin ihtiyacı olur ikisini birden kullanmak ister muvaffak olamaz acemi falan olur, hayın arkinfes demesin ardından.
Dizi değişkenler işimizi kolaylaştırmak için varlar ama sen maşallah tek tek yazmışsın şöylşe olsa daha iyi olmaz mı;
------
' Bilgileri kontrol et
cezaver = 0
For i = 0 To UBound(suz)
If InStr(user_agent, suz(i)) > -1 Then cezaver = 1
Next
'// eşleşmeme durumunda ban.asp sayfasına yolluyoruz
If cezaver = 1 Then
' Sayfayi yönlendir...
Response.Redirect "ban.asp"
-----------------------------evet aslında bak o aklıma hiç gelmedi :D
-
S.a. abi ben bi asp script kullanıyorum filmulkesi scripti oyle deniyorum yani acıgı cıkmıs nasıl kapatabilirim acemisiyimde bu işin sitenin sonuna
Kategoridetay.asp?Kategori=YabanciFilm&katID=5%20union+select+all+0,1,2,kullaniciadi,4,5,6,7,parola,9,10,11+from+uyeler
site sonuna bunu ekleyince uyelerin sifre ve kullanıcı adrlarını veriyor nasıl duzeltebilirim ?
-
GoLgee18 bunu yazdı:
-----------------------------
S.a. abi ben bi asp script kullanıyorum filmulkesi scripti oyle deniyorum yani acıgı cıkmıs nasıl kapatabilirim acemisiyimde bu işin sitenin sonuna
Kategoridetay.asp?Kategori=YabanciFilm&katID=5%20union+select+all+0,1,2,kullaniciadi,4,5,6,7,parola,9,10,11+from+uyeler
site sonuna bunu ekleyince uyelerin sifre ve kullanıcı adrlarını veriyor nasıl duzeltebilirim ?
-----------------------------is_numeric işine yarar sanıyorum.Onun dışında ' + , gibi kodları id de süzeceksin.
-
Abi İs Numeric Falan Demissin de anlamıyorum id e gelince nereye koyucam ? veya nasıl yapacam acemıyım biraz sana zahmet abi birazdaha ayrıntılı anlatırmısın?