Cihat Şeker
Üye
- Kayıt
- 7 Haziran 2008
- Mesaj
- 533
- Tepki
- 6
Birçok büyük sistem logları veritabanında saklamak yerine dosya sisteminde saklamayı tercih ederler. Çünkü;
a) Daha hızlı
b) Kontrolü daha kolay
b) En önemlisi daha güvenli
Saldırganın admin panelini ele geçirdiğini düşünelim, buradan istediği şekilde loglarda oynama yapabilecektir, ama biz dosya sistemi kullansaydık saldırgan değil admin paneli FTP şifresini bile eline geçirse loglara erişemez.
Bir ay önce yazdığım sistem olan online kontrolde ben log tutması için dosya sistemini kullandım. İlk log sistemim olduğu için biraz amatörce ama memnunum. Sayfa isimleri ve o sayfada Log sistemi ile ilgili kullandığım kodları veriyorum kendinize göre düzenleyerek kullanabilirsiniz.
Register.asp // Kullanıcı Kayıt Oluyor gerekli klasör ve dosyalar yaratılıyor ve kullanıcının ilk profili kayıt ediliyor:
Login.asp // Kullanıcı giriş yapıyor ve log tutuluyor:
forgotPassword.asp // Kullanıcı şifremi unuttum bölümünde yanlış denemeler için log:
Bu örnekler genişletilebilir özellikle mesela klasörleme sistemi geliştirebilir. A-C | C-E gibi klasörleme sistemi yapılabilir.
Önemli Not: Log klasörüne mutlaka 80. porttan erisim olmasın, siteniz d: sitelerx.com http docs default.asp ise log dosyaları d: sitelerx.com logfiles yolunda olsun.
a) Daha hızlı
b) Kontrolü daha kolay
b) En önemlisi daha güvenli
Saldırganın admin panelini ele geçirdiğini düşünelim, buradan istediği şekilde loglarda oynama yapabilecektir, ama biz dosya sistemi kullansaydık saldırgan değil admin paneli FTP şifresini bile eline geçirse loglara erişemez.
Bir ay önce yazdığım sistem olan online kontrolde ben log tutması için dosya sistemini kullandım. İlk log sistemim olduğu için biraz amatörce ama memnunum. Sayfa isimleri ve o sayfada Log sistemi ile ilgili kullandığım kodları veriyorum kendinize göre düzenleyerek kullanabilirsiniz.
Register.asp // Kullanıcı Kayıt Oluyor gerekli klasör ve dosyalar yaratılıyor ve kullanıcının ilk profili kayıt ediliyor:
Kod:
<%
randomize
sTempWord = 1024*rnd
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO
.CreateFolder Server.MapPath("userFiles")&""&Request.Form("formUsername")
.CreateTextFile Server.MapPath("userFiles")&"" &Request.Form("formUsername")&"firstProfile."&sTempWord
.CreateTextFile Server.MapPath("userFiles")&""&Request.Form("formUsername")&"passwordChanges.log"
.CreateTextFile Server.MapPath("userFiles")&""&Request.Form("formUsername")&"failedAttempts.log"
.CreateTextFile Server.MapPath("userFiles")&""&Request.Form("formUsername")&"successfulLogins.log"
End With
Set fileObj = FSO.OpenTextFile(Server.MapPath("userFiles")&""&Request.Form("formUsername")&"passwordChanges.log",8,0)
fileObj.WriteLine "First Password '"&Request.Form("formPass1")&"' | Time - IP: "&Now&" - "&Request.ServerVariables("REMOTE_ADDR")
Set fileObj = Nothing
Set fileObj = FSO.OpenTextFile(Server.MapPath("userFiles")&""&Request.Form("formUsername")&"firstProfile."&sTempWord,2,0)
With fileObj
.WriteLine "Kullanici ID: "&rsUserAdd("id")
.WriteLine "Ad: "&rsUserAdd("fname")
.WriteLine "Soyad: "&rsUserAdd("lname")
.WriteLine "Kullanici Adi: "&Request.Form("formUsername")
.WriteLine "Kullanici sifresi: "&Request.Form("formPass1")
.WriteLine "Dogum Tarihi: "& Request.Form("formDobDay")&"."&Request.Form("formDobMonth")&"."&Request.Form("formDobYear")
.WriteLine "Gizli Soru: "&rsUserAdd("squestion")
.WriteLine "Cevap: "&rsUserAdd("sanswer")
.WriteLine "Cinsiyet: "&rsUserAdd("gender")
.WriteLine "Aktivasyon Kodu: "&rsUserAdd("regcode")
.WriteLine "Kayit Zamani - IP: "&rsUserAdd("regdt")&"-"&Request.ServerVariables("REMOTE_ADDR")
.Close
End With
Set FSO = Nothing
Set fileObj = Nothing
rsFSO.close : Set rsFSO = Nothing %>
Login.asp // Kullanıcı giriş yapıyor ve log tutuluyor:
Kod:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fileObj = FSO.OpenTextFile(Server.MapPath("userFiles")&""&Session("username")&"successfulLogins.log",8,0)
fileObj.WriteLine "Successful Login | Time - IP: "&Now&" - "&Request.ServerVariables("REMOTE_ADDR")
fileObj.Close
Set FSO = Nothing
rsFSO.close : Set rsFSO = Nothing
forgotPassword.asp // Kullanıcı şifremi unuttum bölümünde yanlış denemeler için log:
Kod:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fileObj = FSO.OpenTextFile(Server.MapPath("userFiles")&""&Request.Form("formUsername")&"failedAttempts.log",8,0)
fileObj.WriteLine "Failed Forgot Password Attempt | Time - IP: "&Now&" - "&Request.ServerVariables("REMOTE_ADDR")
fileObj.Close
Set FSO = Nothing
rsFSO.close : Set rsFSO = Nothing
Bu örnekler genişletilebilir özellikle mesela klasörleme sistemi geliştirebilir. A-C | C-E gibi klasörleme sistemi yapılabilir.
Önemli Not: Log klasörüne mutlaka 80. porttan erisim olmasın, siteniz d: sitelerx.com http docs default.asp ise log dosyaları d: sitelerx.com logfiles yolunda olsun.