【发布时间】:2017-07-09 19:31:32
【问题描述】:
我正面临带有下划线的剩余标题的问题,在我打印它们时没有获得剩余标题的值。
有人知道我该如何完成这项工作吗?
谢谢!
【问题讨论】:
-
不要在标题中使用下划线。即使它曾经有效,你也应该停止。
标签: python rest mod-wsgi bottle request-headers
我正面临带有下划线的剩余标题的问题,在我打印它们时没有获得剩余标题的值。
有人知道我该如何完成这项工作吗?
谢谢!
【问题讨论】:
标签: python rest mod-wsgi bottle request-headers
标题名称中不应使用下划线,只能使用破折号作为分隔符。
Apache 和 nginx 等主流 Web 服务器,以及一些 Python WSGI 服务器/框架会丢弃带有下划线的标头,以避免标头欺骗。
假设你有一个标题:
My-Header: value
这在 CGI/WSGI 中被转换为变量:
HTTP_MY_HEADER: value
当传递给应用程序时。
问题是一个标题:
My_Header: value
也映射到相同的。
这里的危险是客户端可以使用其中一个,而代理之间的某些东西可能会故意设置另一个尝试并获得优先权,从而在服务器/应用程序处理它时覆盖原来的。
由于这是一个潜在的安全问题,服务器现在只允许带有字母数字和破折号的标头通过,其他任何内容都将被丢弃。
【讨论】: