Kullanıcının işinden başlamak

Yararlı log, olayı işe yarayan en az bilgiyle açıklar. Operatörün sorusundan başlayın: hangi işlem, hangi adımda, hangi sürümde, hangi bağımlılık sonucuyla başarısız oldu? İstek gövdesini tamamen yazmak, operasyon aracını kontrolsüz müşteri verisi kopyasına çevirebilir.

Kapsamı amaca uygun tutmak

Yapısal olay adı, zaman, istek kimliği ve hassas olmayan sonuç kodlarını tercih edin. Müşteri içeriği yetkili iş sisteminde kalsın. OWASP log rehberi hassas veriyi dışlamayı ve log erişimini korumayı ele alır. Acil durumda kapsamı artırmadan önce saklama, erişim ve maskeleme kurallarını belirleyin.

Prova için bir senaryo

Entegrasyonun müşteri güncellemesini reddettiğini varsayın. Log; entegrasyon adı, işlem kimliği, deneme sayısı ve sınıflanmış hata içersin. Operatör yetkili iş kaydını ayrıca açabilir. Sağlayıcı hatasında e-posta veya token gelmesini de deneyin; kendi alanınızı temizlemek üçüncü taraf mesajını temizlemez. Sadece fonksiyon girdisini değil, gerçekten saklanan logu inceleyin.

Sorunu başka yere taşımamak

Proxy veya analitiğin kaydedebileceği URL'lere gizli bilgi koymayın. Hash uygulanmış bir kimliği kendiliğinden anonim kabul etmeyin. Hata ayıklama modu, canlı ortamda toplanan verinin kapsamını fark edilmeden artırmamalı. Erişim ve saklama ihtiyacı farklıysa güvenlik denetim iziyle genel teşhisi ayırın. Log hatasının alternatif mesajı da hassas değer sızdırmamalı.

Olay gerekmeden log kaydını tasarlayın

Başarısız güncelleme için olay adı, zaman, işlem kimliği, sürüm, deneme ve sınırlı sonuç kategorisi tanımlayın. Bağlantı kurmak için gerekenle yalnız kolaylık sağlayanı ayırın. Rastgele nesneyi yazmak yerine izinli alanları seçin; nesneye sonradan politika değişmeden bilgi eklenebilir. Müşteri mesajı genel olsa da olay yararlı kalabilir.

Log deposuna bütün yolu izleyin. Proxy, middleware, hata takipçisi, worker ve kütüphane de çıktı üretir. URL, header, exception ve iç içe sağlayıcı yanıtını inceleyin. E-posta, token ve mesaja benzeyen uydurma işaretleri kullanıp her hedefte arayın. Maskeleme birim testi, başka bileşenin asıl değeri önce kaydetmediğini göstermez.

Erişim ve silmeyi operasyon işi sayın. Loglarda kimin arama yapabileceği, veriyi dışa aktarabileceği ve saklama süresini değiştirebileceği belli olsun. Geçici olarak açılan ayrıntılı kayıt modu, belirlenen süre sonunda kendiliğinden kapansın. Asıl kayıt gerekiyorsa herkese log erişimi açmak yerine iş sisteminin yetkisini kullanın. Aktarımlar ve kopya olay notları da silme kapsamına girsin. Temizlenen olay hâlâ teşhise yarıyor mu bakın. Fazla genelse kişisel gövdeyi geri koymak yerine güvenli yapısal bağlam ekleyin. Değişimlerde dengeyi denemek için temiz örnekleri tutun.

Log inceleme matrisi

Testİncelenen kanıt
Sağlayıcı hatasında token vardırUygulama ve sonraki çıktılar token'ı dışlar, yararlı hata sınıfını korur.
İstek URL'si hassas girdi taşırUygulama alanı temiz olsa bile proxy veya middleware değeri sızdırmaz.
Geçici debug süresi biterBirinin temizliği hatırlamasına bağlı olmadan normal kapsama dönülür.
Yetkili teşhis bağlam isterGüvenli olay mevcut izinlerle iş kaydına bağlanır; toplu müşteri içeriği verilmez.

Sonucu değerlendirmek

Her alan hangi teşhis sorusuna gerekiyor? Logu kim okur veya aktarır? Kopyalar dâhil ne zaman silinir? İncelemeye temizlenmiş hata örnekleri getirin; müşteri mesajının tamamını almadan gerçek hata örüntüsünün araştırılabildiğini gösterin.

Kaynaklar ve ek okumalar

  1. OWASP — Logging cheat sheet
Hizmetler

Yazılım devralma ve bakım

Mevcut yazılımı devralmak ve geliştirmek için sağlam bir başlangıç.

Bu hizmeti konuşalım