python - 关于通过下划线/破折号混淆的 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
解决方案
推荐阅读
- reactjs - 如何防止我的 ReactJs 代码在客户端可见?
- angular - Angular 2+,通过路由器重定向到另一个组件的 html 不起作用
- sql - Count Number SQL where 不存在
- php - pg_prepare 和 pg_fetch_object
- visual-studio-code - 如何在 VS 代码上安装 Windows 终端
- c# - Unity Lerp in seconds - 点列表
- angular - 在 Angular 中读取 XML 文件
- c# - 如何在 mvc 代码优先方法中获取完整字符串格式的日期?
- android - Android 键盘在 Web 视图中隐藏输入
- javascript - 如何在 javascript 中从 reg 表达式 /\W+/ 中排除单引号?