屏蔽特定的 GET 请求参数

很早的时候给 WordPress 安装了一个插件以优化移动设备访问网页时的显示效果。该插件在页面地址上添加 wpmp_switcher=mobile 参数来标记移动设备。后来改用自动适应的 CSS 之后就不再需要了。这个参数自然也就失去了作用,慢慢地也从搜索引擎的索引中消失了。但是有个搜索引擎却在几年后依然大量地针对索引包含这个参数的网页链接。今天终于被暴力的屏蔽掉了。

其实就这么一个 Sogou 蜘蛛就算把水景一页网站上的每一个页面都爬三遍其实也不会带来多大问题。之所以突然下决心给禁用了,是因为今天还发现有人疯狂地利用这个参数来试探服务器是否有 SQL 注入漏洞。虽然显然这个是没有什么效果的,还是决定直接把包含该参数的访问请求直接屏蔽掉。也许会误伤,不过无所谓了。

服务器使用的是 Apache 2.4,屏蔽特定请求参数还是很方便的。参考官方文档,使用下面的规则即可,

<Location>
    <If "%{QUERY_STRING} =~ /wpmp_switcher=/">
        Require all denied
    </If>
</Location>

其中,=~ 表示“包含”,后面的 /.../ 表示匹配规则。

当然具体的部署方法跟之前“屏蔽一些不友好的蜘蛛”里面使用的方法一样。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/block-specific-query-string/>。转载请保留此信息及相应链接。

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)