我試圖用Django的@sensitive_post_parameters
來過濾敏感信息。我認爲把這些註釋放在少數特定的功能上就足夠了,但它不起作用。我在SafeExceptionReporterFilter
裏面設置了斷點,它只在被其他處理程序從AdminEmailHandler
和而不是被調用時纔會中斷。我錯過了什麼?是否有可能使用Django的SafeExceptionReporterFilter而不是AdminEmailHandler?
回答
即使您使用SafeExceptionReporterFilter
,異常仍會包含敏感數據(例如您的服務器的ENV變量和其他運行時數據)。
爲避免暴露敏感數據,您不應該使用此過濾器。相反,編寫自己的異常處理程序中間件並有選擇地(遞歸地?)自己獲取日誌中需要的數據。
請參閱sys.exc_info
瞭解如何獲取異常的回溯以及如何根據需要使用它。
即使您使用CustomHandler,您也會受到特定處理程序的限制,並且據我所知,第三方處理程序不會使用SafeExceptionReporterFilter
。
事實上,我的確嘗試創建一個自定義處理程序,就像@aumo建議的那樣,但它基於graypy GELF處理程序,並且無法在不重寫整個事物的情況下添加篩選。至於敏感的運行時數據,我知道安全人員不會讓我登錄它們。我想我會繼續寫下我自己的異常記錄器中間件,因爲這是我可以控制信息披露的唯一方式。謝謝 ! –
您可以編寫自定義Handler,使用django.views.debug.ExceptionReporter
來格式化異常。
實施例使用的ExceptionReporter
:
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
將使用由DEFAULT_EXCEPTION_REPORTER_FILTER
設置在缺省情況下是SafeExceptionReporterFilter
定義的ExceptionReporterFilter
。
查看AdminEmailHandler
的implementation以獲取有關如何創建自定義Handler
的信息。
- 1. 是否有可能檢查用戶是否在線而不使用ajax請求?
- 2. 是否有可能使Qtcreator目標爲directfb而不是X11
- 3. 是否有可能使PopupWindow成爲模態,而不是AlertDialog?
- 4. 是否有可能使Websocket成爲REST而不是SOAP?
- 5. 是否有可能使用jnlp而不簽署罐子?
- 6. 是否有可能使用就是hbm2ddl
- 7. css - 是否有可能使用只有CSS而不是其他東西
- 8. 是否有可能使表單不可見而不是按鈕? VB
- 9. 是否有可能過濾DataView的列而不是行
- 10. 是否有可能使用CSS,使其變寬,而不是更高
- 11. 是否有可能使用的xsd:重新定義擴展,而不是限制?
- 12. 是否有可能使用直方圖()繪製的,而不是HIST()
- 13. 是否有可能不PixelBender
- 14. 是否有可能使鍵盤不可見,而Chrome的地址欄不可見?
- 15. 是否有可能使AIDL
- 16. 是否有可能使位置參數可選的URL在Django
- 17. 是否有可能使用Uri.Builder而沒有「//」部分?
- 18. 是否有可能將JFrame放在前面而不是重點?
- 19. 是否有可能延遲加載Jquery(而不是插件)?
- 20. 是否有可能在sql中看到'null'而不是空白
- 21. 是否有可能在WebView中使用繪圖(而不是圖像)?
- 22. 是否有可能私密地使用Google Containers而不是在雲端?
- 23. 是否有可能使用MongoEngine刪除一個字段,而不是strict = False?
- 24. 是否有可能使用CTest的Opencover?
- 25. 是否有可能使用的indexOf
- 26. 是否有可能有不同的IsolatedStorageSettings.ApplicationSettings?
- 27. 是否仍有可能在Google App Engine上使用django-mediagenerator
- 28. 是否有可能在Django上使用Python SpeechRecognition?
- 29. 是否有可能在Django中使用多個對象描述?
- 30. 是否有可能與Qooxdoo框架一起使用Django?
您是否設置了'DEBUG = False'? – spg
很明顯,但謝謝你指出。 –