我今天有人通过这样的链接访问我的网站:
www.example.com/pagename.php?_sm_byp=iVVVMsFFLsqWsDL4
有人可以向我解释这是如何工作的,因为我的实际 URL 以结尾,pagename.php
而且我从未允许用户输入任何 PHP 查询,也从未有会话 ID 或类似的东西。
我今天有人通过这样的链接访问我的网站:
www.example.com/pagename.php?_sm_byp=iVVVMsFFLsqWsDL4
有人可以向我解释这是如何工作的,因为我的实际 URL 以结尾,pagename.php
而且我从未允许用户输入任何 PHP 查询,也从未有会话 ID 或类似的东西。
这并不罕见。许多站点/服务器允许(或者更确切地说,忽略)任意查询组件。
例如,您可以附加?foo=bar
到这些 URL 并仍然获得 HTTP 状态 200:
现在,由于它们已链接到此处,用户可能会访问它们,因此这些 URL 将出现在他们的日志中。除了手动添加这样的查询组件外,它们还可能由各种脚本添加,例如用于跟踪目的,或链接到您的页面的第三方服务(……有时它们的来源是未知的)。
如果您不希望您的 URL 与任意查询组件一起使用,您可以配置您的后端/服务器,使其重定向到没有查询组件的 URL,或以 404 或其他方式响应。
如果您继续允许这样做,但想防止机器人使用这些不必要的查询组件索引您的 URL,您可以使用canonical
链接关系指定 URL 的规范变体。