【问题标题】:Do anyone knows where nginx does header validations? [closed]有谁知道 nginx 在哪里进行标头验证? [关闭]
【发布时间】:2016-10-08 03:57:36
【问题描述】:

有谁知道 Nginx 不允许在请求标头名称中使用哪些字符以及此检查是哪个模块?

【问题讨论】:

    标签: nginx nginx-location


    【解决方案1】:

    根据 Nginx docs

    有效名称由英文字母、数字、连字符和 可能是下划线(由 underscores_in_headers 控制 指令)

    在源代码中,它在ngx_http_request.c 中通过对ngx_http_parse_header_line() 的函数调用进行验证。

    【讨论】:

    • 我不同意这里,因为如果您发送的请求的标头包含类似 `, : 等,效果会很好。
    • 在您的问题中,您说request header name 与标题值不同。我给你一个标题名称的答案。
    • 是的,我的意思是一样的。我发送请求 curl -I localhost:80 -H 'Ab!: sbn' 如果你看到标题名称包含!然后我也得到了 200 个响应。如果我理解不正确,请纠正我。
    • 这可能是因为ignore_invalid_headers 可能默认开启。如果关闭该选项,您将收到 Bad Request 错误。
    • 但是对于像 &{}[] 这样的一些字符,它会说 Bad Request。
    猜你喜欢
    • 1970-01-01
    • 2011-10-18
    • 2016-03-06
    • 2011-10-06
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    相关资源
    最近更新 更多