【问题标题】:Odd HTTP URI Requests with Misplaced Periods带有错位句点的奇数 HTTP URI 请求
【发布时间】:2020-07-08 14:50:47
【问题描述】:

由于如下所示的请求,我从系统收到了错误报告:

https://www.example.com./

注意第三个正斜杠之前添加的句点。

尽管服务器说$_SERVER['HTTP_HOST'] = www.example.net.,但我不认为这是有效的。

  • 这在技术上有效吗?
  • 我应该使用带有奇数字符的trim 来重定向到实际 主机名网址吗?
  • 还有其他奇怪的方式可以请求$_SERVER['HTTP_HOST'],我应该尝试让我的系统进行补偿?

【问题讨论】:

    标签: php url url-routing


    【解决方案1】:
    1. 是的,它是有效的!查看https://stackoverflow.com./
    2. 从技术上讲,我相信 URI 是相同的,所以我不知道有充分的理由从一个重定向到另一个。如果它有效,我想我不会碰这个。请注意,例如 stackoverflow 没有。
    3. HTTP Host 标头由客户端控制,可以是任何字符串。因此,如果您对该标头进行任何操作,例如将其添加到您的 HTML 或 SQL 字符串中,您需要将其视为用户输入和转义。您应该为 every 标头假设这一点。始终可以使用 CURL 发出请求并更改其中任何一个。

    【讨论】:

    • 对 Stack 很感兴趣。我希望在某处获得官方参考...我很清楚所有以HTTP_ 开头的PHP $_SERVER 都来自客户端; any 中的任何内容在与数据库交互之前都会被转义。
    • 之所以. 是一件事是因为(例如)您的resolv.conf 可能设置了一个“搜索域”,在某些情况下,它可以用您设置的任何域后缀未知域这里。 . 保证不会发生这种情况。
    • 我不熟悉,你能编辑一个例子吗?
    • 例如,如果我的search 设置为example.org,并且我点击了一个DNS 名称bar,但它不存在,那么接下来会立即尝试bar.example.org
    • 抱歉,我彻夜未眠 - 什么是搜索域?比如尝试解析服务器上的域和子域...?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    相关资源
    最近更新 更多