【问题标题】:Django - safe to store debugging data in request.METADjango - 在 request.META 中安全地存储调试数据
【发布时间】:2017-08-10 11:28:51
【问题描述】:

我们知道,如果您的 django 应用程序出现错误并且您有 debug=True,那么您会看到类似

虽然我不确定,但我假设如果debug=False,我们仍然可以访问同样的东西,除非 django 会通过电子邮件将此 html 文件发送给我们。

按照这个假设(请有人确认),我的任务是向这个异常模板添加另一个部分(USER、GET、POST、FILES、ETC [NEW CUSTOM SECTION HERE])。

但是,由于我不知道该怎么做,我认为更简单的方法是将一堆自定义键值设置为 request.META

这样做安全吗?比如说 API 密钥之类的?那么当出现问题时,我会在格式化日志的META 中看到它?

【问题讨论】:

    标签: python django exception logging


    【解决方案1】:

    【讨论】:

    • 我知道debug=False 不会显示上面的屏幕——它会发送到我的邮箱,对吧?
    【解决方案2】:

    添加异常非常简单,例如:

    class IamHandsome(Exception):
        """ the user is too handsome """
        pass
    

    在你的逻辑中调用它

    # ...
    if userIsTooHansome():
       raise IamHandsome
    

    那么你只需要使用try catch块

    try:
       # calling some function with exception logic
       # ...
    except IamHandsome as e:
       pass
    

    不建议将其放入元数据(尤其是秘密)中。如果你能看到它,那么其他人也能做到。

    如果您想直接查看,可以使用log settings 将其作为日志文件然后访问它(假设您使用*nix)

    tail -f log_location/django_log_file.log
    

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多