Django'nun @sensitive_post_parameters
numarasını kullanarak hassas bilgileri filtrelemeye çalışıyorum. Bu ek açıklamaların bazı özel işlevler için hazırlanmasının yeterli olacağını düşündüm, ama işe yaramıyor. SafeExceptionReporterFilter
içinde kesme noktası belirledim ve yalnızca diğer kullanıcılara ve değil'dan arandığında kopuyor. Neyi kaçırıyorum ?Django'nun SafeExceptionReporterFilter'ını AdminEmailHandler'den başka bir şeyle kullanmak mümkün mü?
cevap
SafeExceptionReporterFilter
'u kullansanız bile, istisnalar yine de önemli veriler (örneğin, sunucunuzun ENV değişkenleri ve diğer çalışma zamanı verileri) içerir. Hassas verileri göstermekten kaçınmak için bu filtreyi kullanmamalısınız. Bunun yerine, kendi Exception Handler Middleware'inizi yazın ve seçici olarak (yinelemeli olarak?), Günlüklerde istediğiniz verileri alın.
istisnanın Traceback ve nasıl ihtiyaçlarınız için kullanmak nasıl elde edilebileceği konusunda sys.exc_info
bakınız.
Bir CustomHandler ile giderseniz bile, belirli bir işleyici ile sınırlı olacaksınız ve bildiğim kadarıyla, üçüncü taraf işleyicileri SafeExceptionReporterFilter
'u kullanmayacaktır.
Doğrusu ben özel bir işleyici oluşturmak çalıştım. Hassas çalışma zamanı verileri gelince, güvenlik adam bana onları log izin vermeyeceğini biliyorum. Bilginin nasıl açıklanacağını kontrol edebilmemin tek yolu olduğu için devam edip kendi istisna kaydedici ara katmanımı yazacağımı düşünüyorum. Teşekkür ederim ! –
Özel durumu biçimlendirmek için django.views.debug.ExceptionReporter
kullanan özel bir Handler yazabilirsiniz. ExceptionReporter
ait
Örnek kullanım:
from django.views.debug import ExceptionReporter
# exc_type, exc_value, traceback are a standard exception
# tuple as returned by sys.exc_info
reporter = ExceptionReporter(request, exc_type, exc_value, traceback)
html_report = reporter.get_traceback_html()
text_report = reporter.get_traceback_text()
ExceptionReporter
varsayılan olarak SafeExceptionReporterFilter
olan DEFAULT_EXCEPTION_REPORTER_FILTER
ayarıyla tanımlanan ExceptionReporterFilter
kullanacaktır.
Özel bir Handler
oluşturma hakkında bilgi almak için AdminEmailHandler
's implementation bir göz atın.
'DEBUG = False' ayarladınız mı? – spg
Evet, tabi ki, ama işaret ettiğin için teşekkürler. @aumo beni önerdi, ancak graypy GELF işleyicisi dayanıyordu ve her şeyi yeniden yazmadan filtreleme eklemek mümkün değildi –