Gelişmiş Log Tutma

ASP ile gelişmiş sistemlerde Log tutmak için güvenli ve hızlı bir yöntem...

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:



<%

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:


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:


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.
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

bunu sistemime kesinlikle eklemeliyim sağol Hakan Ayaz :dusun:
Guzel anlatim ama cok karisik. kodlarin ne ise yaradiini da anlatsaydin iyi olurdu.
:-dusun:güzel bir uygulama bu ama bunuda kırarlar bir gün:kirp:

Yukarı Git