地下室先生博客禁止wordpress自带搜索功能,减少博客被恶意关键词搜索攻击

随着地下室先生博客的百度收录和流量持续增长,终于被一些人给盯上了。利用wordpress的搜索功能漏洞对地下室先生博客进行恶意攻击。

1、wordpress博客被恶意关键词搜索攻击

如下图所示:

不法分子利用地下室先生博客的搜索功能搜索一些违规关键词。

不法分子利用地下室先生博客的搜索功能搜索一些违规关键词

在博主发现这个问题之后,及时进行了处理,具体见利用百度网址安全中心和Robots.txt来减少wordpress的搜索框恶意攻击的方案一文的说明。虽然在一定程度上可以减少恶意攻击带来的影响,但是这并不能完全避免被攻击。

唯一能杜绝攻击的方案就是关闭wordppress的搜索功能。在是否关闭站点搜索功能上我犹豫了很久,并且尝试使用百度站内搜索,可惜的是因为百度站内搜索不支持https,导致计划失败。

虽然也有一些方案是增加限制特定关键词搜索的功能来尽可能的减少恶意关键词搜索(后面会介绍方法),不过恶意关键词实在是太多了,显然不停的增加禁止关键词是不太可能的,既增加了网站的负担,也增加了博主的负担。

经过分析,目前我的博客用户搜索不是很多,我自己也基本上不用搜索功能,所以决定暂时关闭地下室先生博客的搜索功能,当然,前台页面为了美观,我可能还会保留搜索框!

2、如何禁止wordpress自带搜索功能

可以通过在主题的functions.php文件中添加相关的函数代码实现。具体的代码如下,代码来自知更鸟博客

//禁用WordPress前台搜索功能
function disable_search( $query, $error = true ) {
if (is_search() && !is_admin()) {
$query->is_search = false;
$query->query_vars['s'] = false;
$query->query['s'] = false;
if ( $error == true )
// 执行搜索后显示的错误页面
// $query->is_home = true; //跳转到首页
$query->is_404 = true;//跳转到404页
}
}
add_action( 'parse_query', 'disable_search' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

可以选择执行搜索后显示的错误页面,是跳转到404或者网站首页

原代码来自网络,不支持PHP7.2,修改了一下可以支持高版本PHP。

3、WordPress如何屏蔽恶意关键词搜索的方法

作为补充资料,这里说下WordPress如何屏蔽恶意关键词搜索的方法,不过还是那个问题这不是彻底的解决方法

a、当前主题目录下/wp-content/themes/主题名/functions.php文件添加下列代码

//屏蔽恶意关键词搜索
add_action('admin_init', 'php_search_ban_key');
function php_search_ban_key() {
add_settings_field('php_search_key', '搜索关键词屏蔽', 'php_search_key_callback_function', 'reading');
register_setting('reading','php_search_key');
}

function php_search_key_callback_function() {
echo '<textarea id="php_search_key" class="large-text code" cols="50" name="php_search_key" rows="10">' .&lt;/p&gt;
&lt;p&gt;get_option('php_search_key') . '</textarea>';
}
add_action('template_redirect', 'php_search_ban');
function php_search_ban(){
if (is_search()) {
global $wp_query;
$php_search_key = get_option('php_search_key');
if($php_search_key){
$php_search_key = str_replace("\r\n", "|", $php_search_key);
$BanKey = explode('|', $php_search_key);
$S_Key = $wp_query-&gt;query_vars;
foreach($BanKey as $Key){
if( stristr($S_Key['s'],$Key) != false ){
wp_die('请不要搜索非法关键字');
}
}
}
}
}

b、登录 WordPress 网站后台 >> 设置(Settings) >> 阅读 >> 找到搜索关键词屏蔽 >> 添加您想屏蔽的搜索关键词,如网赚、股票等,每个关键词一行 >> 点击【保存更改】按钮即可。具体如下图所示:

添加您想屏蔽的搜索关键词

c、添加完毕后,直接在前台输入已经屏蔽的关键词就会提示‘请不要搜索非法关键字’。至于详细的样式大家可以自行 DIY。

未经允许不得转载:地下室先生博客 » 地下室先生博客禁止wordpress自带搜索功能,减少博客被恶意关键词搜索攻击

赞 (1) 打赏作者

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏