8

我今天有人通过这样的链接访问我的网站:

www.example.com/pagename.php?_sm_byp=iVVVMsFFLsqWsDL4

有人可以向我解释这是如何工作的,因为我的实际 URL 以结尾,pagename.php而且我从未允许用户输入任何 PHP 查询,也从未有会话 ID 或类似的东西。

4

1 回答 1

1

这并不罕见。许多站点/服务器允许(或者更确切地说,忽略)任意查询组件。

例如,您可以附加?foo=bar到这些 URL 并仍然获得 HTTP 状态 200:

现在,由于它们已链接到此处,用户可能会访问它们,因此这些 URL 将出现在他们的日志中。除了手动添加这样的查询组件外,它们还可能由各种脚本添加,例如用于跟踪目的,或链接到您的页面的第三方服务(……有时它们的来源是未知的)。

如果您不希望您的 URL 与任意查询组件一起使用,您可以配置您的后端/服务器,使其重定向到没有查询组件的 URL,或以 404 或其他方式响应。

如果您继续允许这样做,但想防止机器人使用这些不必要的查询组件索引您的 URL,您可以使用canonical链接关系指定 URL 的规范变体。

于 2015-04-15T22:04:47.393 回答