Sql İnj. Den Nasıl Korunulur
-
bi sitem var ' yazıp arama butonuna basınca garip şeyler çıkıyor :(
nasıl çözebilirm bu poroblemi -
nukemi site yada sitenin adresi ne benim bi sitem var demekle olmuyo :))
-
Veritabanına oluşturduğun isimlerle alakalı. Sql injection yiyen siteler genelde database deki verileri okutur. Örneğin aspindir de yayınlanan birçok scriptin sql injection problemi vardır. Yani bir nebi bir kod ile db nin içindeki bilgileri almak. Tabi başka birçok şey daha yapabilirsiniz. Sitede arama özelliği olursa işiniz iş..
-
Uyeler gibi bir isim varsa db de bunu uye_tablo gibi bir şey yaparak korunabilirsin.
-
en basiti PHP ise hata verdirtmesini önlemen için
mysql_connect, mysql_query, mysql_fetch_array ların başına @ koy -
walla sitenin adresini vermek isterdim ama tırstığım için vermiyom :))
sistem asp ile kodlandı.
aslında
<%
function guvenlik(arama)
arama = Replace (arama ,"'","",1,-1,1)
arama = Replace (arama ,"`","",1,-1,1)
arama = Replace (arama ,"=","",1,-1,1)
arama = Replace (arama ,"&","",1,-1,1)
arama = Replace (arama ,"%","",1,-1,1)
arama = Replace (arama ,"!","",1,-1,1)
arama = Replace (arama ,"#","",1,-1,1)
arama = Replace (arama ,"<","",1,-1,1)
arama = Replace (arama ,">","",1,-1,1)
arama = Replace (arama ,"*","",1,-1,1)
arama = Replace (arama ,"And","",1,-1,1)
arama = Replace (arama ,"'","",1,-1,1)
arama = Replace (arama ,"Chr(34)","",1,-1,1)
arama = Replace (arama ,"Chr(39)","",1,-1,1)
arama = Replace (arama ,"select","",1,-1,1)
arama = Replace (arama ,"join","",1,-1,1)
arama = Replace (arama ,"union","",1,-1,1)
arama = Replace (arama ,"where","",1,-1,1)
arama = Replace (arama ,"insert","",1,-1,1)
arama = Replace (arama ,"delete","",1,-1,1)
arama = Replace (arama ,"update","",1,-1,1)
arama = Replace (arama ,"like","",1,-1,1)
arama = Replace (arama ,"drop","",1,-1,1)
arama = Replace (arama ,"create","",1,-1,1)
arama = Replace (arama ,"modify","",1,-1,1)
arama = Replace (arama ,"rename","",1,-1,1)
arama = Replace (arama ,"alter","",1,-1,1)
arama = Replace (arama ,"cast","",1,-1,1)
guvenlik=arama
end function
%>
bu kodları kullanıyorum ama bi boka yaramıyor yine alıyorum o hatayı tablo isimleri filan çıkıyor ' yazınca :( -
atıorum
asp?id=2329 var diyelim sen burda bi puştluk yap
2329"d yaz.
"
Microsoft OLE DB Provider for SQL Server error "80040e14"
Unclosed quotation mark before the character string "d;".
/news.asp, line 67 "
diye bi hata verio mu bak bakalım.
gerçi bu yazdığım asp şu anda lsteleme yapılamıomş dio şu hata da.
eer böle bi hata veriosa sql yemeye ilk adım diyebiliriz.
ileri seviye sql + asp bilgim yok o yüzden kesn bişe diyemiorum : ) -
ana sayfada yapınca
Ulaşmaya çalıştığınız sayfa bulunamadı. !
Ana Sayfa
başka bi sayfada yapınca
Lütfen Geçerli bir ID numarasý girin.
bazılarında ise 500 hatası alıyorum
bide sql dan korunmak için özel sayfa hatalarını açmak iyi olurmu
açınca bu hatalar çıkmıyor -
bi puştluk yapıp burada deneyim dedim :)
http://tahribat.com/forumnewmessage.asp?folderid=33813'd
böle yazınca bu hata çıkıyor :P
sql açığımı var yane :D
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'CLng'
/forumnewmessage.asp, line 15
-
sayfana on error resume next ekle.. o güvenlik fonksiyonunuda her requestte kullan örneğin
id=guvenlik(request("id"))
bu sayede gelen id temizlenmiş olur on error resume next sayesinde de hatalar gözükmez. -
krouma yöntemi basit asp de db sokarken adodb command kullanicaksiniz direkt sql cumlesi vericeginize o szin yerinize olustursun cumleyi. nasi oluyor diyenlere;
set objCommand=Server.CreateObject("ADODB.command")
seklinde olsuturuyodsunz daha sonra
.params ile paametreleri veriyosunz hem daha sistematik çalışıo hem çok daha güvenli
örnek kodu şurda var;
http://www.sqlservercentral.com/columnists/awarren/introductiontoadothecommandobject.asp
foxxly: o gördüğün hatayı sql deil asp side isapi veriyo yani gelen değerin bi sayı olmadığını beliryio cint() cstr() cdate() gibi fonksiyonlarla gelen veriyi sadece istediğin türe sokaiblirsin sadece sayı gelcek bi bölümde filitrelemeyi güvenliğe sokmaktansa cint ile filitrelemek daha mantıklı. tabi bu tavsiye etmediğim bi yöntem tahribat eski dönemlerde yazıldığından bu şekilde uygun görmüş holy.
Toplam Hit: 13977 Toplam Mesaj: 14