【问题标题】:What does ALB consider a "valid" header fieldALB 认为什么是“有效”标头字段
【发布时间】:2020-03-09 22:19:45
【问题描述】:

截至 2019 年 11 月 13 日,ELB LoadBalancerAttribute 文档显示

只有 Application Load Balancer 支持以下属性....

  • routing.http.drop_invalid_header_fields.enabled - 指示具有无效标头字段的 HTTP 标头是由负载平衡器删除 (true) 还是路由到目标 (false)。默认值为 true。

标头字段的验证规则是否与RFC 7230 中定义的规则不同?如果有,差异是否记录在任何地方?

编辑:Jon Zobrist reports 自太平洋标准时间晚上 8 点(11 月 13 日)起默认为 false。

【问题讨论】:

标签: amazon-web-services http amazon-elb


【解决方案1】:

所有 AWS 文档似乎都指向以下标准:RFC 7230 第 3.2 节、RFC 822 第 3.1 节和 RFC 2616 第 4.2 节。所以我会自信地说,不,没有与那些 RFC 中定义的规则不同的标头字段的验证规则。

只要每个标题字段由不区分大小写的字段名称后跟冒号 (":")、可选的前导空格、字段值和可选的尾随空格组成,您就可以使用了;这基本上是 RFC 7230 第 3.2 节 (https://www.rfc-editor.org/rfc/rfc7230#section-3.2) 中定义的内容

字段由回车符 (CR) 和换行符 (LF) 分隔。

维基百科有一个很好的标准和常见非标准标题字段列表: https://en.wikipedia.org/wiki/List_of_HTTP_header_fields

其他 RFC 链接:

https://www.rfc-editor.org/rfc/rfc822#section-3.1

https://www.rfc-editor.org/rfc/rfc2616#section-4.2

【讨论】:

【解决方案2】:

如果您的标题中包含下划线,则其无效。我们命名为 app_token 的标头遇到了这个问题

【讨论】:

    【解决方案3】:

    AWS 定义目前记录在一个地方:AWS 论坛中的一张票,描述了 11 月 13 日的恢复。

    ALB removes header "access_token" from incoming request

    我们认为标准标题只包含字母数字字符和连字符

    【讨论】:

    • 该链接指向论坛告诉您登录的错误页面;通常最好将答案粘贴到答案中:)
    • 我猜他引用的帖子是this one。
    • 谢谢,我已更新答案以匹配该链接。
    • ALB 访问日志不记录请求中收到的标头。有没有其他方法可以记录标题并检查标题的确切问题。
    猜你喜欢
    • 1970-01-01
    • 2012-09-08
    • 2020-07-23
    • 2017-05-14
    • 2020-04-18
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    相关资源
    最近更新 更多