gpt4 book ai didi

python - Django 报错邮件 : env vars leak info

转载 作者:太空狗 更新时间:2023-10-29 21:52:40 26 4
gpt4 key购买 nike

Django 的内置功能可以在出现错误时向管理员发送电子邮件(请参阅 https://docs.djangoproject.com/en/dev/howto/error-reporting/)非常方便。

但是,这些追溯电子邮件包含环境变量的完整转储。

并且按照 django 文档和其他地方(例如 https://docs.djangoproject.com/en/dev/howto/deployment/checklist/)中的建议,我将一些 secret / key /密码移动到环境变量中,作为一种简单的方法让它们远离代码库并在部署中改变它们。不幸的是,这意味着当出现崩溃报告时,这些 secret 会以明文形式发送到一组电子邮件帐户。这不是一个好的做法。

django ExceptionReporter 具有基本的过滤功能,可以提取“危险或令人反感”的设置,例如settings.py 中名称包含字符串“pass”或“key”的任何项的值将被替换为****s。因此,settings.py 中的 key 被删除。但是这个过滤器不适用于环境变量,它出现在这些错误报告的 Traceback->Local vars->request 和 Request Information->Meta 部分。

显然还有其他方法来管理 secret ,但 unix 环境是小型站点的一种非常常见的解决方案,在这些站点中创建更复杂的配置系统是不必要的。

这两种做法似乎也有问题,它们都在基本的 django 文档中推荐,当一起应用时是不安全的。

通过电子邮件发送站点调试信息总是会带来一些信息泄露的风险,但这似乎是一个重大的遗漏,可以通过扩展过滤来解决,或许可以通过某些设置来控制。

有没有人已经为他们的部署修补了这个(大概是在 django/views/debug.py 中扩展了过滤)和/或向 django 团队提交了补丁?还是我错过了其他一些明显的方法来解决这个问题?

最佳答案

好的,在我之前的检查中错过了这个,但显然 django 团队大约在 6 年前记录了这个错误并将其关闭为不会修复:

https://code.djangoproject.com/ticket/7472

我会和他们一起解决这个问题,因为我相信 django 在此期间在安全方面取得了实质性进展,现在可能想要并有一些简单的方法来解决这个问题。 :)

与此同时,如果您使用此向管理员发送电子邮件的功能,请注意风险。如果您发送这些电子邮件,那么我强烈建议您将所有 secret /密码/ key /证书/等保留或放置在 python 配置文件中,并确保您正在清理传递给您的 django 网络服务的 (unix) 环境。

关于python - Django 报错邮件 : env vars leak info,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27411362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com