我今天有人通过以下链接访问我的网站:
www.example.com/pagename.php?_sm_byp=iVVVMsFFLsqWsDL4
有人可以向我解释这是如何工作的,因为我的实际网址以pagename.php
结尾,而且我从未允许用户输入任何PHP查询,也从不拥有会话ID或类似内容。
答案 0 :(得分:1)
这并不罕见。许多站点/服务器允许(或更确切地说,忽略)任意查询组件。
例如,您可以将?foo=bar
附加到这些网址,并仍然获得HTTP状态200:
现在,因为它们在此链接,用户可能会访问它们,因此这些网址会显示在其日志中。除了手动附加这样的查询组件之外,它们还可以通过各种脚本添加,例如, tracking purposes或链接到您网页的第三方服务(...和sometimes their origin is unknown)。
如果您不希望您的URL使用任意查询组件,您可以配置后端/服务器,使其重定向到没有查询组件的URL,或者使用404或其他任何方式响应。
如果您继续允许此操作,但希望阻止机器人使用这些不必要的查询组件为您的网址编制索引,则可以使用canonical
link relation指定网址的规范变体。