Dragon
  • 注册、登陆后即可全站无广告畅快浏览本博客了!
  • 本博客已开启支持百度AI智能内容自动审核机制!
明月登楼明月登楼  2017-04-11 18:40 明月登楼的博客 隐藏边栏 |   61 条评论  8,982 
文章评分 0 次,平均分 0.0
导语: Block Bad Queries 插件还有一个 Pro 收费版,不过是集成了更多的可定制的功能而已,基本上免费版的已经够我们使用了。为了方便国内站长们下载和使用,明月特将 Block Bad Queries 的[白名单/黑名单插件]转至七牛云上以方便大家下载和安装使用。

可能很多站长都深受恶意 URL 请求之累吧,这种恶意 URL 请求非常的疯狂每天几百次、上千次的请求量可以说是非常常见的,明月可以说是多年以来是深受其害,但是一直没有非常好的应对办法。各类恶意 URL 请求就像是逛“公共厕所”一样肆无忌惮的来来去去,如果主机配置稍弱一些被这类请求给折腾宕机几乎是常事儿了。

为此,明月也是一直不遗余力的在网上寻找各种办法来防御恶意 URL 的骚扰,比较常用的一般也就是.htaccess 来屏蔽了,但是.htaccess 又非常的不方便一个不小心就会造成网站出现“500 错误”,而恶意 URL 又是经常的变幻无穷,每次调整屏蔽规则都要操作.htaccess 文件真的是一个麻烦又有风险的事儿。

今天在搜索查询有关防止遭受恶意 URL 请求的时候,发现了这个 Block Bad Queries 插件(昵称 BBQ,绝对不是烧烤),插件其实很简单就是一个 PHP 文件而已,代码如下:

Block Bad Queries 插件源代码[s][p]

  1. <?php
  2. /*
  3.     Plugin Name: Block Bad Queries (BBQ)
  4.     Plugin URI: https://perishablepress.com/block-bad-queries/
  5.     Description: Automatically protects WordPress against malicious URL requests. This is the free/basic version of BBQ.
  6.     Tags: security, protect, firewall, php, eval, malicious, url, request, blacklist
  7.     Usage: No configuration necessary. Upload, activate and done. BBQ blocks bad queries automically to protect your site against malicious URL requests.
  8.     Author: Jeff Starr
  9.     Author URI: https://plugin-planet.com/
  10.     Contributors: specialk, aldolat, WpBlogHost, jameswilkes, juliobox, lernerconsult
  11.     Donate link: http://m0n.co/donate
  12.     Requires at least: 4.1
  13.     Tested up to: 4.7
  14.     Stable tag: 20161114
  15.     Version: 20161114
  16.     Text Domain: block-bad-queries
  17.     Domain Path: /languages
  18.     License: GPLv2 or later
  19. */
  20. if (!defined('ABSPATH')) die();
  21. function bbq_core() {
  22.     $request_uri_array  = apply_filters('request_uri_items',  array('eval\(', 'UNION(.*)SELECT', '\(null\)', 'base64_', '\/localhost', '\%2Flocalhost', '\/pingserver', '\/config\.', '\/wwwroot', '\/makefile', 'crossdomain\.', 'proc\/self\/environ', 'etc\/passwd', '\/https\:', '\/http\:', '\/ftp\:', '\/cgi\/', '\.cgi', '\.exe', '\.sql', '\.ini', '\.dll', '\.asp', '\.jsp', '\/\.bash', '\/\.git', '\/\.svn', '\/\.tar', ' ', '\<', '\>', '\/\=', '\.\.\.', '\+\+\+', '\/&&', '\/Nt\.', '\;Nt\.', '\=Nt\.', '\,Nt\.', '\.exec\(', '\)\.html\(', '\{x\.html\(', '\(function\(', '\.php\([0-9]+\)', '(benchmark|sleep)(\s|%20)*\('));
  23.     $query_string_array = apply_filters('query_string_items', array('\.\.\/', '127\.0\.0\.1', 'localhost', 'loopback', '\%0A', '\%0D', '\%00', '\%2e\%2e', 'input_file', 'execute', 'mosconfig', 'path\=\.', 'mod\=\.', 'wp-config\.php'));
  24.     $user_agent_array   = apply_filters('user_agent_items',   array('acapbot', 'binlar', 'casper', 'cmswor', 'diavol', 'dotbot', 'finder', 'flicky', 'morfeus', 'nutch', 'planet', 'purebot', 'pycurl', 'semalt', 'skygrid', 'snoopy', 'sucker', 'turnit', 'vikspi', 'zmeu'));
  25.     $request_uri_string  = false;
  26.     $query_string_string = false;
  27.     $user_agent_string   = false;
  28.     if (isset($_SERVER['REQUEST_URI'])     && !emptyempty($_SERVER['REQUEST_URI']))     $request_uri_string  = $_SERVER['REQUEST_URI'];
  29.     if (isset($_SERVER['QUERY_STRING'])    && !emptyempty($_SERVER['QUERY_STRING']))    $query_string_string = $_SERVER['QUERY_STRING'];
  30.     if (isset($_SERVER['HTTP_USER_AGENT']) && !emptyempty($_SERVER['HTTP_USER_AGENT'])) $user_agent_string   = $_SERVER['HTTP_USER_AGENT'];
  31.     if ($request_uri_string || $query_string_string || $user_agent_string) {
  32.         if (
  33.             // strlen( $_SERVER['REQUEST_URI'] ) > 255 || // optional
  34.             preg_match('/'. implode('|', $request_uri_array)  .'/i', $request_uri_string)  ||
  35.             preg_match('/'. implode('|', $query_string_array) .'/i', $query_string_string) ||
  36.             preg_match('/'. implode('|', $user_agent_array)   .'/i', $user_agent_string)
  37.         ) {
  38.             bbq_response();
  39.         }
  40.     }
  41. }
  42. add_action('plugins_loaded', 'bbq_core');
  43. function bbq_meta_links($links$file) {
  44.     if ($file == plugin_basename(__FILE__)) {
  45.         $rate_url   = 'https://wordpress.org/support/plugin/block-bad-queries/reviews/?rate=5#new-post';
  46.         $rate_title = esc_attr__('Click here to rate and review this plugin at WordPress.org', 'block-bad-queries');
  47.         $rate_text  = esc_html__('Rate this plugin&nbsp;&raquo;', 'block-bad-queries');
  48.         $links[] = '<a target="_blank" href="'. $rate_url .'" title="'. $rate_title .'">'. $rate_text .'</a>';
  49.     }
  50.     return $links;
  51. }
  52. add_filter('plugin_row_meta', 'bbq_meta_links', 10, 2);
  53. function bbq_action_links($links$file) {
  54.     if ($file == plugin_basename(__FILE__)) {
  55.         $pro_url   = 'https://plugin-planet.com/bbq-pro/?plugin';
  56.         $pro_title = esc_attr__('Get BBQ Pro for advanced protection', 'block-bad-queries');
  57.         $pro_text  = esc_html__('Go&nbsp;Pro', 'block-bad-queries');
  58.         $pro_style = 'padding:1px 5px 2px 5px;color:#fff;background:#feba12;border-radius:1px;';
  59.         $links[] = '<a target="_blank" href="'. $pro_url .'" title="'. $pro_title .'" style="'. $pro_style .'">'. $pro_text .'</a>';
  60.     }
  61.     return $links;
  62. }
  63. add_filter('plugin_action_links', 'bbq_action_links', 10, 2);
  64. function bbq_languages() {
  65.     load_plugin_textdomain('block-bad-queries', false, basename(dirname(__FILE__)) .'/languages/');
  66. }
  67. add_action('plugins_loaded', 'bbq_languages');
  68. function bbq_response() {
  69.     header('HTTP/1.1 403 Forbidden');
  70.     header('Status: 403 Forbidden');
  71.     header('Connection: Close');
  72.     exit;
  73. }

[/p]

从上面的代码可以看出这个 Block Bad Queries 插件基本上就是把.htaccess 实现的运用 PHP 来实现了,并且更加的灵活和实用,同时性能上也很出众,几乎不会对 WordPress 有任何的影响。并且利用其提供的[白名单/黑名单插件]还可以自己定制黑/白名单,自定义这个我是最喜欢了,这样就不怕恶意 URL 请求的变幻不定了!

[Block Bad Queries](BBQ)是一款简单,超快的插件,用于保护您的网站免受恶意网址的请求。 BBQ 检查所有传入的流量,并静静地阻止包含诸如`eval(`,`base64_`和过长的请求字符串)这样令人讨厌的东西的不良请求。

功能特色:

  • 100%即插即用功能
  • 不需要配置
  • 100%专注于安全和性能
  • 阻止广泛的恶意请求
  • 扫描所有传入流量并阻止不良请求
  • 扫描所有类型的请求:GET,POST,PUT,DELETE 等
  • 幕后静默地保护您的网站
  • 易于使用的无忧安全插件
  • 彻底测试,无错误的性能
  • 兼容其他安全插件
  • *通过[白名单/黑名单插件]自定义阻止的字符串

Block Bad Queries 插件还有一个 Pro 收费版,不过是集成了更多的可定制的功能而已,基本上免费版的已经够我们使用了。为了方便国内站长们下载和使用,明月特将 Block Bad Queries 的[白名单/黑名单插件]转至七牛云上以方便大家下载和安装使用。

Block Bad Queries 插件  WordPress 官方下载

 

Block Bad Queries 黑名单扩展插件

 

Block Bad Queries 白名单扩展插件

上述两个扩展的安装只需要将解压后的文件上传在 WordPress 插件目录即可。

 

 

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

明月登楼给明月登楼打赏
×
予人玫瑰,手有余香
  • 2
  • 5
  • 10
  • 20
  • 50
2
支付

本文来自投稿,不代表明月登楼的博客立场,版权归原作者所有,欢迎分享本文,转载请保留出处!

明月登楼
明月登楼 关注:8    粉丝:0 最后编辑于:2019-07-06
玉满斋(www.ymanz.com)网站创始人,☑玉器爱好者 ☑微博控 ☑手机控 ☑历史控 ☑宅 ☑网络控 ☑Wordpress控

发表评论

表情 链接 私密 格式 签到
  1. 很萌
    很萌 来自天朝的朋友 谷歌浏览器 55.0.2883.87 Windows 8.1

    谢谢指导,最近大站也是被攻击得厉害。

    29楼 2018-08-14 20:07
    0 0 回复
  2. 很文博客
    很文博客 评论达人 LV.1 未知 谷歌浏览器 55.0.2883.87 Windows 8.1

    做网站真的是具备很多知识,当你搭建好网站,要想好内容,想好了内容,还要想流量,流量来了,牛鬼蛇神就出来了,前几年的服务器被挂了很多博彩和色情的页脚,苦不堪言。

    28楼 2018-04-22 13:40
    0 0 回复
  3. ToString
    ToString 来自天朝的朋友 谷歌浏览器 65.0.3325.181 Windows 10

    这插件的作者在官网上提供了详细的.htaccess 过滤规则,只要将规则复制到.htaccess 中就可以了。

    27楼 2018-04-07 14:57
    0 0 回复
  4. newbiefly
    newbiefly 来自天朝的朋友 谷歌浏览器 56.0.2924.87 Windows 7

    1、安装了 BBQ 插件后,直接启动就行了吗,没有看到像其它插件一样的配置页面哎有点心虚
    2、黑白名单的插件安装后,如果配置哎 也是没有看到配置页面,是点击编辑在代码里自己设置吗
    谢谢

    26楼 2018-01-28 19:46
    0 0 回复
  5. 风神博客

    安装后无效,后台不显示插件

    25楼 2017-07-08 09:53
    0 0 回复
  6. JV
    JV 来自天朝的朋友 谷歌浏览器 50.0.2661.102 Windows 7

    点击官方链接居然跳转到淘宝?!

    24楼 2017-04-19 21:51
    0 0 回复
  7. lynnshare

    不错

    23楼 2017-04-18 01:45
    0 0 回复
  8. 呆毛电脑配置网
    呆毛电脑配置网 评论达人 LV.5 来自天朝的朋友 谷歌浏览器 49.0.2623.75 Windows 7

    :arrow: 说的是统计里面,那些奇奇怪怪的访问 URL 么?

    22楼 2017-04-17 13:34
    0 0 回复
  9. 姜辰
    姜辰 评论达人 LV.4 来自天朝的朋友 火狐浏览器 52.0 Windows 10

    我开过网站日志统计这些,后来我就关闭了,已经麻木了~

    21楼 2017-04-16 00:43
    0 0 回复
    • 明月登楼
      明月登楼 博主 来自天朝的朋友 谷歌浏览器 57.0.2987.133 Windows 10

      @姜辰是的,我也是麻木了!据说 SSL 对这些扫描有一定的效果!
      我的这个博客站主机太脆弱了,这种扫描多了都会宕机的!特别是阿里云那个“资源耗尽”最恶心了!所以,我是尽量的“拒敌于国门之外”呀!

扫一扫二维码分享