是否可以将 Django 的 SafeExceptionReporterFilter 与 AdminEmailHandler 以外的其他东西一起使用?
Is it possible to use Django's SafeExceptionReporterFilter with something else than the AdminEmailHandler?
我正在尝试使用 Django 的 @sensitive_post_parameters
过滤掉敏感信息。我认为将这些注释放在几个特定函数的前面就足够了,但它不起作用。我在 SafeExceptionReporterFilter
内设置了断点,它仅在从 AdminEmailHandler
和 而不是 其他处理程序调用时中断。我错过了什么?
您可以编写一个使用 django.views.debug.ExceptionReporter
格式化异常的自定义 Handler。
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
设置定义的 ExceptionReporterFilter
,默认情况下为 SafeExceptionReporterFilter
.
查看 AdminEmailHandler
的 implementation 以获取有关如何创建自定义 Handler
的信息。
即使您使用 SafeExceptionReporterFilter
,异常仍将包含敏感数据(例如您服务器的 ENV 变量和其他运行时数据)。
为避免泄露敏感数据,您不应使用此过滤器。相反,编写您自己的异常处理程序中间件并有选择地(递归地?)在日志中获取您想要的数据。
请参阅 sys.exc_info
了解如何获取异常的回溯以及如何根据您的需要使用它。
即使您使用 CustomHandler,您也会受到特定处理程序的限制,据我所知,第三方处理程序不会使用 SafeExceptionReporterFilter
。
我正在尝试使用 Django 的 @sensitive_post_parameters
过滤掉敏感信息。我认为将这些注释放在几个特定函数的前面就足够了,但它不起作用。我在 SafeExceptionReporterFilter
内设置了断点,它仅在从 AdminEmailHandler
和 而不是 其他处理程序调用时中断。我错过了什么?
您可以编写一个使用 django.views.debug.ExceptionReporter
格式化异常的自定义 Handler。
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
设置定义的 ExceptionReporterFilter
,默认情况下为 SafeExceptionReporterFilter
.
查看 AdminEmailHandler
的 implementation 以获取有关如何创建自定义 Handler
的信息。
即使您使用 SafeExceptionReporterFilter
,异常仍将包含敏感数据(例如您服务器的 ENV 变量和其他运行时数据)。
为避免泄露敏感数据,您不应使用此过滤器。相反,编写您自己的异常处理程序中间件并有选择地(递归地?)在日志中获取您想要的数据。
请参阅 sys.exc_info
了解如何获取异常的回溯以及如何根据您的需要使用它。
即使您使用 CustomHandler,您也会受到特定处理程序的限制,据我所知,第三方处理程序不会使用 SafeExceptionReporterFilter
。