我试图用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
很明显,但谢谢你指出。 –