Web 服务器应如何处理带有不正确 Host 标头的请求?

Web 服务器应如何处理带有不正确 Host 标头的请求?

我的网站收到大量请求,但Host请求头设置不正确(最常见的是 IP 地址而不是域名)。目前,我正在返回400 Bad Request。我正在考虑返回301302,但不确定这是否是个好主意。

当客户端错误地设置标头时,最佳做法是什么Host

答案1

我想说,除了一些机器人和其他自动扫描仪之外,所有东西都应该发送有效的主机字段。

HTTP/1.0(没有主机标头)的使用率目前基本上为零,而且任何仍在使用该功能的东西很可能不是您的网站所想要或需要的。

因此对我来说,对这些请求进行 301 或 302 处理的价值有限,它们最终可能会再次访问您的网站,浪费您的资源。

最后,你可能花了太多时间担心这个问题。垃圾请求是运营面向公众的互联网网站不可或缺的一部分,大多数情况下,最好忽略它们,而不是浪费时间。如果你担心,那么你可以安装 WAF 来过滤掉这类东西。

答案2

您的网络服务器当前的行为是什么,在处理缺少Host:标头和/或Host:具有未知 DNS 名称的标头的请求时,您是否显示实际站点?

如果您当前正在显示一个实际站点并且想要在执行此操作之前进行更改,您可能需要先调查是否存在以下情况:

  • 真实客户端仍然使用 HTTP 协议级别 1.0(尚无标Host:头)。

如果是这种情况,那么您可能需要通过保持当前行为来适应这些情况(至少对于那些特定的客户)。

可以说,在响应无效请求时不显示实际网站是有价值的,哪怕只是为了将网络扫描仪/网络爬虫/机器人创建的一些垃圾排除在真实网站日志之外。

相关内容