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

2019-08-2508:17:14WEB安全防护Comments2,890 views字数 2039阅读模式

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

如下图所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

不法分子利用地下室先生博客的搜索功能搜索一些违规关键词。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

禁止wordpress自带搜索功能,减少博客被恶意关键词搜索攻击文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

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

唯一能杜绝攻击的方案就是关闭wordppress的搜索功能。在是否关闭站点搜索功能上我犹豫了很久,并且尝试使用百度站内搜索,可惜的是因为百度站内搜索不支持https,导致计划失败。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

虽然也有一些方案是增加限制特定关键词搜索的功能来尽可能的减少恶意关键词搜索(后面会介绍方法),不过恶意关键词实在是太多了,显然不停的增加禁止关键词是不太可能的,既增加了网站的负担,也增加了博主的负担。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

经过分析,目前我的博客用户搜索不是很多,我自己也基本上不用搜索功能,所以决定暂时关闭地下室先生博客的搜索功能,当然,前台页面为了美观,我可能还会保留搜索框!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

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

可以通过在主题的functions.php文件中添加相关的函数代码实现。具体的代码如下,代码来自知更鸟博客文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

//禁用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或者网站首页文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

原代码来自网络,不支持PHP7.2,修改了一下可以支持高版本PHP。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

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

作为补充资料,这里说下WordPress如何屏蔽恶意关键词搜索的方法,不过还是那个问题这不是彻底的解决方法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

a、当前主题目录下/wp-content/themes/主题名/functions.php文件添加下列代码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

//屏蔽恶意关键词搜索
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) >> 阅读 >> 找到搜索关键词屏蔽 >> 添加您想屏蔽的搜索关键词,如网赚、股票等,每个关键词一行 >> 点击【保存更改】按钮即可。具体如下图所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

禁止wordpress自带搜索功能,减少博客被恶意关键词搜索攻击文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

c、添加完毕后,直接在前台输入已经屏蔽的关键词就会提示‘请不要搜索非法关键字’。至于详细的样式大家可以自行 DIY。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/anquan/15801.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/anquan/15801.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定