【问题标题】:Too much information in Django's request.META objectDjango 的 request.META 对象中的信息过多
【发布时间】:2019-09-26 10:41:39
【问题描述】:

我最近一直在为特定视图检查 request.META,在我看来,所有环境变量(如 DJANGO_SECRET_KEY、DJANGO_DATABASE_NAME 和 DJANGO_SUPERUSER_PASSWORD...等)都包含在此对象中,作为默认值的额外变量Django request.META 数据。我将如何从 META 中删除所述变量?这是否可以从客户端以任何方式访问?

我猜我可以使用一些中间件来去除这些,但有其他人看到过这种行为吗?这正常/安全吗?

注意。我在 django web 服务的 docker-compose.yml 文件中将上述内容指定为 ENVIRONMENT 变量。

【问题讨论】:

  • 你为什么关心它包含什么?
  • @DanielRoseman 嗨,丹尼尔,我只是在想是否有人能够检查 META 是否存在恶意...(我需要 HTTP_AUTHORIZATION 标头,但从技术上讲,我无法将其删除,所以我可能不用担心。)
  • 谁能检查它?这是一个内部变量。如果有人可以访问您正在运行的 Python 进程,那么您面临的问题不仅仅是变量中的内容。
  • @DanielRoseman 公平点。

标签: django django-request


【解决方案1】:

这听起来像是因为您将它们设置为环境变量,它们包含在request.META 中。因此,您必须考虑不将它们实际存储为环境变量,或者进行自己的处理来自定义和删除它们。但是请注意,客户端无法访问 request.META 中的内容,因此从安全角度来看,这还不错。

【讨论】:

  • @NSO 我会看看我是否可以接受这是其他一些人可以验证这不是安全问题。
猜你喜欢
  • 2022-12-22
  • 1970-01-01
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 2020-08-03
  • 1970-01-01
相关资源
最近更新 更多