Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python瓶子rest头不使用下划线_Python_Rest_Mod Wsgi_Bottle_Request Headers - Fatal编程技术网

Python瓶子rest头不使用下划线

Python瓶子rest头不使用下划线,python,rest,mod-wsgi,bottle,request-headers,Python,Rest,Mod Wsgi,Bottle,Request Headers,我在打印带有下划线的rest标题时遇到了问题,无法获得rest标题值 有人知道我怎样才能做到这一点吗 谢谢 标题名称中不应使用下划线,只能使用破折号作为分隔符 主流web服务器,如Apache和nginx,加上一些Python WSGI服务器/框架,将丢弃带有下划线的标题,以避免标题欺骗 假设您有一个标题: My-Header: value My_Header: value CGI/WSGI中的此变量转换为变量: HTTP_MY_HEADER: value 当传递给应用程序时 问题在于标题

我在打印带有下划线的rest标题时遇到了问题,无法获得rest标题值

有人知道我怎样才能做到这一点吗


谢谢

标题名称中不应使用下划线,只能使用破折号作为分隔符

主流web服务器,如Apache和nginx,加上一些Python WSGI服务器/框架,将丢弃带有下划线的标题,以避免标题欺骗

假设您有一个标题:

My-Header: value
My_Header: value
CGI/WSGI中的此变量转换为变量:

HTTP_MY_HEADER: value
当传递给应用程序时

问题在于标题:

My-Header: value
My_Header: value
也映射到相同的

这里的危险在于,客户机可能会使用其中一个,而其中的某个东西(如代理)可能会故意将另一个设置为尝试优先,从而在服务器/应用程序处理它时覆盖原始文件


由于这是一个潜在的安全问题,服务器现在只允许带有字母数字和破折号的标题通过,其他任何内容都将被丢弃。

Hi Graham,但它已经运行了几个月了,突然它停止工作了,我现在无法更改它,因为这个更改也可以应用到客户端。您使用的是什么WSGI服务器?WSGI服务器最近升级了吗?Apache/2.4.18(Ubuntu)mod_WSGI/4.3.0 Python/2.7.12已配置。我有三个应用程序具有相同的设置,一个运行良好,而两个在标题方面面临下划线问题。这些应用程序使用Apache 2.2工作吗?如果是这样,那就是原因。Apache2.4会阻止这些头。更新版本的mod_wsgi也将阻止它们,即使仍然使用Apache2.2。不要在标题中使用下划线。即使它曾经起作用,你也应该停止。