Python Bottle rest标头不能使用下划线

时间:2017-02-20 13:33:27

标签: python rest mod-wsgi bottle request-headers

我正面临着使用下划线的剩余标题的问题,而不是在我打印时获取其余标题值。

有人知道如何让这项工作成功吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您不应在标题名称中使用下划线,仅使用短划线作为分隔符。

主流Web服务器(如Apache和nginx)以及一些Python WSGI服务器/框架将丢弃带下划线的标头,以避免标头欺骗。

想象一下,你有一个标题:

My-Header: value

这在CGI / WSGI中转换为变量:

HTTP_MY_HEADER: value

传递给申请时。

问题是标题:

My_Header: value

也映射到同一个。

这里的危险是客户端可以使用一个,而代理之间的东西可以故意设置另一个尝试优先,在服务器/应用程序处理它时覆盖原始文件。

由于这是一个潜在的安全问题,服务器只允许包含字母数字和短划线的标头现在通过,其他任何内容都被丢弃。