今天一个朋友跟我说他的网站服务器cpu过载,宕机了,然后我看了服务器日志,然后发现全部是:http://你的域名/?s=xxx这样的请求,很明显这是被恶意搜索攻击了。这种恶意搜索攻击,其实非常简单,就是通过既定的网址结构不断对网站发起不良关键词搜索访问,将访问的地址推送到各大搜索引擎,加快这些恶意网址的收录,这对网站排名是非常不利的,甚至可能会直接被搜索引擎 K 站。文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
那么如何应对这类恶意搜索攻击呢?办法有多种,大家自己选择一个比较适合自己的即可,下面给大家一一分享一下:文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
1、禁止搜索引擎收录搜索结果页文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
搜索结果页一般我们都不推荐被收录,所以建议大家还是禁止收录。现在几乎所有搜索引擎都遵循 robots.txt 的规则,也就是我们可以通过 robots.txt 定义规则,阻止搜索引擎收录搜索结果页面。我们可以在网站根目录,创建一个 robots.txt 文件,填入下面的内容。文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
Disallow: /?s=*
文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
这样就禁止搜索引擎收录 WordPress 搜索结果页了。文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
但是这个方法有个不足之处就是一旦搜索引擎不遵循 robots 规则就没有作用了(国内不少搜索引擎就不遵守 robots 协议),所以这个办法明月的态度是仅供参考,聊胜于无了!文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
2、使用代码实现屏蔽搜索某些关键词文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
在当前主题目录下/wp-content/themes/主题名/functions.php 文件添加下列代码:文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
add_action('admin_init', 'ytkah_search_ban_key'); function ytkah_search_ban_key() { add_settings_field('ytkah_search_key', '搜索关键词屏蔽', 'ytkah_search_key_callback_function', 'reading'); register_setting('reading','ytkah_search_key'); } function ytkah_search_key_callback_function() { echo '<textarea name="ytkah_search_key" rows="10" cols="50" id="ytkah_search_key" class="large-text code">' . get_option('ytkah_search_key') . '</textarea>'; } add_action('template_redirect', 'ytkah_search_ban'); function ytkah_search_ban(){ if (is_search()) { global $wp_query; $ytkah_search_key = get_option('ytkah_search_key'); if($ytkah_search_key){ $ytkah_search_key = str_replace("\r\n", "|", $ytkah_search_key); $BanKey = explode('|', $ytkah_search_key); $S_Key = $wp_query->query_vars; foreach($BanKey as $Key){ if( stristr($S_Key['s'],$Key) != false ){ wp_die('请不要搜索非法关键字'); } } } } }
然后进入 WordPress 网站后台设置–>阅读–>找到搜索关键词屏蔽–>添加您想屏蔽的搜索关键词,比如(恶意关键词 1,恶意关键词 2…),一行一个关键词文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
在后台(设置→阅读)中添加要屏蔽的关键词。文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
个方法相对于第一个方法来说效果好了很多,但还是比较被动,需要站长及时发现和屏蔽关键词才可以,这就存在一个防不胜防的问题了,毕竟谁也没有时间和精力一天 24 个小时盯着这种事儿呀!文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
3、彻底禁用 WordPress 内置搜索文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
目前大部分主流 WordPress 主题都自带集成第三方站内搜索了,比如像小虾博客使用的知更鸟的 Begin主题就集成了百度、搜狗、360 站内搜索的同时还提供了 WordPress 内置搜索的开关控制,如下图所示:文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
这样一来可以说是彻底一劳永逸的解决了“恶意搜索攻击”这个顽疾了,同时也防止某些无聊幼稚的人借助 WordPress 内置搜索试试的流量攻击啥骚扰网站。文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
至于 WordPress 集成第三方搜索引擎到站内的方法网上教程实在是太多了,大家自行百度、谷歌一下吧,这里就不赘述了。文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html
除了以上方法外,宝塔面板专业版软件 – Nginx防火墙也可以设置限制当前IP在网站内单位时间的访问次数,也可起到防止被恶意刷搜索的作用。方法有很多,可根据自己需求来设置。文章源自小虾博客-https://www.xiaoxiawz.com/yingxiao/3510.html