首页 > 解决方案 > 关于通过下划线/破折号混淆的 WSGI 标头欺骗

问题描述

我有一个通过 apache/uwsgi 部署的 Django 项目。但是事情并不像https://docs.djangoproject.com/en/3.0/ref/request-response/#django.http.HttpRequest.META中描述的那样工作。

我希望所有请求标头都转换为“通过将所有字符转换为大写,用下划线替换任何连字符并在名称中添加 HTTP_ 前缀来转换元键”,但事实并非如此!

有谁知道为什么?是否可以仅在 http 协议上执行转换(而不是在我使用的 https 上)?是否有任何开关/配置参数可以启用/禁用此转换?

任何解释该行为的提示将不胜感激!

提前感谢您的友好建议

达里奥

PS:以下是requirements.txt的内容

certifi==2018.4.16
cffi==1.11.5
chardet==3.0.4
django-cors-headers==2.2.0
django-simple-history==2.0
djangorestframework==3.7.7 docker
==3.5.1
docker- pycreds>=0.3.0
idna==2.6
mysqlclient>=1.3,<1.4
pycparser==2.18
pytz==2018.3
requests>=2.20,<2.21
六==1.11.0
urllib3>=1.23,<1.24
websocket-client== 0.47.0
Django==2.1.2
gunicorn>=19.5.0,<19.6
django-filter==2.0.0
mozilla-django-oidc==1.2.1
python-dateutil==2.8.0

标签: pythondjangohttp-headershttprequestuwsgi

解决方案


推荐阅读