WordPress屏蔽恶意搜索,防止搜索结果被人恶意利用
最近几天发现有人在恶意攻击我的搜索接口,一直在搜索提交不良信息
如下图,看了一下,全都是这种 足疗..美女…
这种恶意搜索攻击就是WordPress的网址结构,不断对网站发起不良关键词搜索访问
估计他还会将访问的地址推送到各大搜索引擎,加快这些恶意网址的收录。
初不判断他的目的就是里利用我的网站,让搜索引擎收录这些内容 沦为这些不法之徒传播不良信息的渠道…
既然被我发现,那么要如何屏蔽恶意搜索攻击?
我们之间使用代码实现屏蔽搜索某些关键词 在当前主题目录下/wp-content/themes/主题名/functions.php 文件添加下列代码:
add_action('admin_init', 'search_ban_key');
function search_ban_key(){
add_settings_field('search_key', '搜索关键词屏蔽', 'search_key_callback_function', 'reading');
register_setting('reading','search_key');
}
function search_key_callback_function(){
echo '<textarea name="search_key" rows="10" cols="50" id="search_key" class="large-text code">' . get_option('search_key') . '</textarea>';
}
add_action('template_redirect', 'search_ban');
function search_ban(){
if (is_search()) {
global $wp_query;
$search_key = get_option('search_key');
if($search_key) {
$search_key = str_replace("\r\n", "|", $search_key);
$BanKey = explode('|', $search_key);
$S_Key = $wp_query->query_vars;
foreach($BanKey as $Key) {
if( stristr($S_Key['s'],$Key) != false ) {
wp_die('请不要搜索非法关键字');
}
}
}
}
}
然后进入 WordPress 网站后台设置–>阅读–>找到搜索关键词屏蔽–>添加您想屏蔽的搜索关键词,一行一个关键词
这样就可以屏蔽恶意关键词搜索了