BBQ:Block Bad Queries WordPress 插件评论

已发表: 2014-01-30

BBQ:Block Bad Queries 是一个阻止恶意 HTTP 请求的 WordPress Web 应用程序防火墙

有许多 WordPress 安全插件可用,但只有少数真正正确地解决了 WordPress 安全问题并帮助您保护 WordPress 安装免受恶意黑客攻击。

其中一个插件是 BBQ: Block Bad Queries。 这个插件就像一个高度可定制、简单且免维护的 WordPress Web 应用程序防火墙,每个 WordPress 管理员和经理都应该安装它。

这篇 WordPress 安全帖子解释说:

  • BBQ:Block Bad Queries 插件的工作原理
  • 如何自定义 BBQ:Block Bad Queries Plugin
    • 修改/添加要阻止的模式
    • 使用特定的用户代理字符串阻止访问者
    • 配置 HTTP 请求中允许的最大字符数
  • 如何测试 BBQ:阻止错误查询和您的自定义

BBQ:Block Bad Queries WordPress 插件的工作原理

BBQ:Block Bad Queries 插件会在 WordPress 核心执行之前分析发送到 WordPress 的每个请求。 如果请求是恶意的,插件会通过响应 HTTP 状态代码 403,禁止访问来禁止访问者访问此类资源。

恶意模式的默认列表 Block Bad Queries 块不仅可以保护您的 WordPress 免受有针对性的 WordPress 攻击,还可以保护您的 WordPress 免受潜在的零日漏洞和其他典型攻击,例如跨站点脚本、SQL 注入和目录遍历。 因此,如果您安装 BBQ:Block Bad Queries,如果您正在运行易受攻击的(旧)WordPress 安装、插件或主题,恶意黑客仍然无法利用已知漏洞。

WP White 安全提示:即使您运行 BBQ:Block Bad Queries,您仍应运行最新且最安全的 WordPress、插件和主题版本。 WordPress BBQ 插件应该用作额外的安全层,而不是关闭现有的安全漏洞。

自定义 BBQ:Block Bad Queries 插件

默认情况下,阻止错误查询不需要任何自定义或配置更改,但规则始终存在例外情况。 如果您需要自定义 BBQ:Block Bad Queries,以下是您可以自定义的说明。 首先,它会扫描发送到 WordPress 安装的每个请求的三个部分:

Request URI : 用户请求的 URL,例如 https://www.wpwhitesecurity.com/wordpress-security/

Query String : 包含在 URL 中的查询字符串,例如 https://www.wpwhitesecurity.com/wordpress-security/?query_string=1

用户代理字符串:用户代理字符串是从访问您的 WordPress 的客户端软件自动发送的,以识别自己。 例如 Google Chrome 使用以下用户代理字符串:

Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36

恶意请求中通常使用的所有模式都存储在插件中的三个数组中,它们的名称不言自明:

  • $request_uri_array
  • $query_string_array
  • $user_agent_array

BBQ:Block Bad Queries 没有配置界面。 因此,如果您想按照以下示例中的说明进行任何修改,您必须编辑 php 插件文件中的代码。

修改 BBQ:Block Bad Queries 插件应该阻止的 HTTP 请求

如果您想阻止特定类型的查询字符串,请将查询字符串模式添加到 $query_string_array 数组。 添加新模式后,对其进行测试以确保您没有阻止合法请求。 语法示例如下:

$query_string_array  = apply_filters( 'query_string_items',  array( 'PATTERN_1', 'PATTERN_2', 'PATTERN_3');

注意:您添加的每个模式都应在单引号 (') 之间声明,并使用逗号 (,) 符号与其他模式分隔。

使用 WordPress 的特定用户代理阻止访问者

要阻止使用特定用户代理(如自动病毒和恶意软件机器人)的访问者,请将其用户代理字符串添加到 $user_agent_array 中。

为 WordPress 配置最大 URL 长度限制

通过限制可以在 HTTP 请求中使用的字符数,您可以保护您的 WordPress 安装免受零日攻击和其他几种恶意攻击。 零日攻击是被恶意黑客利用但软件供应商还不知道的软件漏洞,因此还没有补丁。

大多数恶意 Web 应用程序攻击使用长 URL 来利用已知漏洞。 因此,如果您限制可在 HTTP 请求中使用的字符数,您将自动保护您的 WordPress 安装免受此类攻击。

通过限制 URL 中使用的字符数,您还可以阻止合法请求。 因此,在启用此安全功能之前,请检查您在 WordPress 安装中拥有的最长 URL 的长度(包括在 WordPress 管理页面 (/wp-admin/) 部分中)。

要启用和配置最大 URL 长度,请取消注释(通过删除“//”)插件中的以下代码行并指定 HTTP 请求可以包含的最大字符数。 插件中的默认值为255,如下图。

strlen( $_SERVER['REQUEST_URI'] ) > 255 ||

测试您的 WordPress Web 应用程序防火墙

安装 BBQ:Block Bad Queries WordPress 插件后,通过请求以下示例 URL 列表运行多个测试以确保其正常工作(将 some_site.com 替换为您的域):

  • http://www.some_site.com/../../../etc/passwd
  • http://www。 some_site.com/path/?q=%00
  • http://www。 some_site.com/path/base64_

如果插件正常工作,服务器应在请求此类 URL 时以 HTTP 状态代码 403 Forbidden 进行响应。 上述请求只是应该被 BBQ:Block Bad Requests 插件阻止的 URL 示例。 您可以使用现实生活中黑客攻击中常用的请求来运行其他几个测试。

测试 BBQ:Block Bad Queries Plugin with Fiddler

如果您在发送恶意 HTTP 请求时不确定服务器响应是什么,您可以使用 Fiddler 代理来确认响应。

如以下屏幕截图中突出显示的那样,在此测试中,我们请求了 URL https://www.wpwhitesecurity.com/contact/base64_并且可以确认服务器以 HTTP 403 Forbidden 响应进行响应。

测试 BBQ:使用 Fiddler 阻止错误请求 WordPress 插件

阻止错误查询插件 – WordPress 的 Web 应用程序防火墙

你有它! 如果您一直在为您的 WordPress 博客和网站寻找高度可定制且强大的 Web 应用程序防火墙,请安装 BBQ:Block Bad Queries 插件并忘记它。 您可以从 WordPress 插件库下载 BBQ:Block Bad Queries 或从这里购买他们的 PRO 版本。

另一方面,如果您更喜欢不需要任何配置并且还进行恶意软件扫描的东西,我会推荐 Malcare 恶意软件扫描程序。