BBQ Firewall – Fast & Powerful Firewall Security


Install, activate, and done!
Powerful protection from WP’s fastest firewall plugin.

BBQ Firewall is a lightweight, super-fast plugin that protects your site against a wide range of threats. BBQ checks all incoming traffic and quietly blocks bad requests containing nasty stuff like eval(, base64_, and excessively long request-strings. This is a simple yet solid solution for sites that are unable to use a strong Apache/.htaccess firewall.

Adds a strong firewall to ANY WordPress site
Works with all WordPress plugins and themes

Powerful Protection

BBQ protects your site against many threats:

  • SQL injection attacks
  • Executable file uploads
  • Directory traversal attacks
  • Unsafe character requests
  • Excessively long requests
  • PHP remote/file execution
  • XSS, XXE, and related attacks
  • Protects against bad bots
  • Protects against bad referrers
  • Protects against bad POST content
  • Protects against many other bad requests

Works great with Blackhole for Bad Bots

Fantastične značajke

BBQ provides all the best firewall features:

  • Rated 5 stars at
  • 100% plug-&-play, zero configuration
  • 100% focused on security and performance
  • Blocks a wide range of malicious URL requests
  • Fastest Web Application Firewall (WAF) for WordPress
  • Based on the 6G/7G Firewall
  • Scans all incoming traffic and blocks bad requests
  • Scans all types of requests: GET, POST, PUT, DELETE, etc.
  • Protects against known bad bots and referrers
  • Works silently behind the scenes to protect your site
  • Hassle-free security plugin that’s easy to use
  • Thoroughly tested, error-free performance
  • Extremely low rate of false positives
  • Compatible with other security plugins
  • Redovite nadolazeće nadogradnje
  • Firewall < 10 kilobytes in size
  • Lightweight, fast and flexible

For advanced protection and features, check out BBQ Pro »
BBQ = Block Bad Queries


This plugin does not collect or store any user data. It does not set any cookies, and it does not connect to any third-party locations. Thus, this plugin does not affect user privacy in any way.

BBQ Firewall is developed and maintained by Jeff Starr, 15-year WordPress developer and book author.

Support development

I develop and maintain this free plugin with love for the WordPress community. To show support, you can make a donation or purchase one of my books:

And/or purchase one of my premium WordPress plugins:

Links, tweets and likes also appreciated. Thank you! 🙂


Instaliranje BBQ

  1. Instalirajte, aktivirajte, dovršeno.

Once active, BBQ automatically protects your site against threats. Quietly, behind the scenes. For more control and stronger protection, check out BBQ Pro »

Više informacija o instaliranju WordPress dodataka

Mogućnosti uređivanja

Note that the Pro version of BBQ makes it possible to customize patterns and everything else directly via the plugin settings, with a click. BBQ Pro also displays the current block count for each firewall rule, like this.


This plugin cleans up after itself. All plugin settings will be removed from your database when the plugin is uninstalled via the Plugins screen.

Sviša vam se ovaj dodatak?

If you like BBQ, please take a moment to give a 5-star rating. It helps to keep development and support going strong. Thank you!


How to test that the plugin is working?

To test that the plugin is working, you can request any of the blocked patterns. For example, visit your site’s homepage and enter the following URL:

Replace with your site’s actual domain. If BBQ is active, the request for that URL will be blocked (with a “403 Forbidden” status). This means the plugin is working properly. You can test other patterns as well. To view all the patterns blocked by BBQ, look at the function bbq_core() located in block-bad-queries.php.

Do you offer any other security plugins?

Yes, three of them:

Pro versions with more features available at Plugin Planet.

Do I need to do anything else for BBQ to work?

Nope, just install and relax knowing that BBQ is protecting your site from bad URL requests.

Where are the plugin settings?

No settings needed for BBQ! Everything is done automatically behind the scenes. Zero configuration required. The free version of BBQ is strictly plug-n-play, set-it-and-forget-it, with no settings to configure whatsoever. Just install, activate, and enjoy better security and robust protection against malicious requests. The Pro version of BBQ is just as fast and simple to use, but is much more powerful and includes robust settings to customize and fine-tune your firewall.

Je li BZU besplatna inačica kompatibilna s dodatkom Wordfence?

Does it makes sense to use both? Yes BBQ free and BBQ Pro are both compatible with any plugin written according to the WP API. And yes, there is benefit to using BBQ with any other security plugin, including Wordfence. They protect against different threats, so using both means you are extra secure.

Unosi li BBQ promjene u moju .htaccess datoteku?

Absolutely not. Unlike other security/firewall plugins, neither BBQ (free version) nor BBQ Pro make any changes to any .htaccess file.

Uvodi li BBQ promjene u bazu podataka WordPress-a?

No, the free version of BBQ operates as each page is loaded; it does not make any changes whatsoever to the WP database.

Does BBQ block malicious strings included in arrays?

Yes, BBQ scans any arrays that are included in the URI request. If any matching patterns are found, the request is blocked.

Moj dodatak za provjeru PHP ispitivač kazuje da postoji pogreška?

For example, if your PHP/plugin scanner reports something like, “found 0x3c62723e which is bad.” Normally you would not want to find such bad strings of code, but there is an exception for security plugins. Think about it: in order to block some nasty string, BBQ must know about it. So each bad string that is blocked by BBQ is included in the plugin “blacklist”. That means, when some PHP scanner looks at BBQ and finds some known bad strings, it just means that the scanner has discovered BBQ’s list of blocked terms. In other words, BBQ contains static strings of non-functional text, in order to match and block malicious requests to your site. I hope this makes sense, feel free to contact me if I may provide any further infos.

Trebam li WordPress kako bih koristio BBQ?

Nope! BBQ is available in the following flavors:

So you can check out the Standalone PHP Script for sites that are not running WordPress.

Can I use BBQ and 7G/8G Firewall at the same time?

Full question: “Except most of the rules overlapping, is it counter productive (site slowing down for example, potential conflicts, bugs) or is there any risks using 7G/8G Firewall + BBQ at the same time?”

Answer: It’s fine to run both BBQ and 7G/8G Firewall at the same time. Both firewalls are super fast, so they won’t slow things down. In other words the two firewalls play well together. The only downside is that some of the rules will be redundant, but there should be no negative impact on performance. The upside is that you get extra protection when using both, as there are variations in the firewall rules and patterns, etc.

Moj PHP ispitivač je pronašao nešto?

If you are using some PHP checker that’s reporting an error or bad string in BBQ, it’s a false positive and safe to ignore. Why? Because the PHP checker is finding the static strings/patterns that BBQ uses to identify and block bad requests. In other words, your PHP checker is finding a static string thinking it is live code. It’s not. If possible, please take a moment to report this to the developers of your PHP checker. They should be happy to improve the accuracy and quality of their plugin. More info.

How to enable logging?

You can use a free addon to display the total number of blocked requests on the BBQ settings page. Here is a guide that explains how to set it up.

Alternately, BBQ can be configured to log the matching pattern for each blocked request. When match-logging is enabled, BBQ will add a log entry in the site’s default error log. To enable match logging, use the free customize plugin.

Note that the Pro version of BBQ displays the current block count for each firewall rule, like this. All automatic, fiddling with code NOT required 🙂

Imate pitanje?

Send any questions or feedback via my contact form.


01. prosinca 2023.
Thanks to the developer for this great plugin.It is just plug and play, and it's so light that the website doesn't feel it. But it's there and does the job.
05. rujna 2023.
Was a rookie when I started and found this plug in. WOW.... This is a must for anyone wanting extra security in keeping their site secure from the bad guys. Never had a glitch, Never had a conflict !! Thanks BBQ !!
07. kolovoza 2023.
After discovering this plugin, I use it all the time for smaller projects and sometimes for larger projects - doesn't seem to add too much overhead but gives great piece of mind.
Pročitajte svih 126 recenzija

Suradnici i Programeri

“BBQ Firewall – Fast & Powerful Firewall Security” je softver otvorenog koda. Sljedeće osobe su doprinijele ovom dodatku.


“BBQ Firewall – Fast & Powerful Firewall Security” je prijeveden na 14 dijalekata. Zahvala prevodiocima za njihov doprinos.

Prevedite “BBQ Firewall – Fast & Powerful Firewall Security” na svoj jezik.

Zainteresirani ste za razvoj?

Pregledajte kôd, pogledajte SVN spremišteili se pretplatite na dnevnik razvoja od RSS.

Dnevnik promjena

If you like BBQ, please take a moment to give a 5-star rating. It helps to keep development and support going strong. Thank you!


  • Adds .msi to Request URI patterns
  • Adds etc/hosts, etc/motd, etc/shadow to Request URI patterns
  • Fixes bug with translation on settings page
  • Ažurira zadani predložak prijevoda
  • Updates custom banner notice
  • Tests on WordPress 6.4 (beta)


  • Improves localization function
  • Improves sanitization of variables
  • Ažurira zadani predložak prijevoda
  • Adds PHP constant, BBQ_BASE_FILE
  • Adds custom notice on settings page
  • Adds information about BBQ addons
  • Improves plugin documentation
  • Tests on WordPress 6.3 (beta)


  • Adds action hook bbq_response
  • Adds filter hook bbq_count_plugin_path
  • Adds button to test firewall active
  • Streamlines firewall functionality
  • Tweaks styles on plugin settings page
  • Appends version number to CSS/JS URLs
  • Improves logic when calling get_current_screen()
  • Adds rate and support links to plugin settings page
  • Adds bbq_long_req_length filter for long-request length
  • Displays blocked count on settings screen (when enabled)
  • Updates whitelist/blacklist addons
  • Updates customize addon
  • Adds plugin screenshots on settings page
  • Generates new translation template
  • Tests on WordPress 6.1 + 6.2 (beta)
  • Tests on PHP 8.1 and 8.2


  • Adds custom footer text to plugin settings
  • Improves plugin documentation
  • Updates translation template
  • Tests on WordPress 6.1


  • Removes .inc from firewall patterns
  • Tests on WordPress 6.0


  • Disables POST data scanning by default
  • Tests on WordPress 5.9


  • Refactors for improved performance
  • Improves checking of POST requests
  • Adds filter hook post_items
  • Adds filter hook bbq_post_scanning
  • Adds /.env to Request URI patterns
  • Adds c99.php to Request URI patterns
  • Updates blacklist and customize addons
  • Improves loading of translations
  • Updates some links to external resources
  • Changes minimum required WP version to 4.6
  • Tests on WordPress 5.9


  • Removes ambien from referrer patterns
  • Tests on WordPress 5.8


  • Removes zune pattern from user agents
  • Removes ninja pattern from user agents
  • Tests on WordPress 5.7


  • Tweaks query string pattern for optimal matching
  • Further tests on WordPress 5.6


  • Removes order pattern from Query String rules
  • Removes ahrefs pattern from User Agent rules


  • Removes python from the User Agent rules
  • Adds filter for URI long-request blocking
  • Adds filter for enabling logging of blocked requests
  • Releases customize plugin to change default functionality
  • Further tests on WordPress 5.6


  • Improves XSS protection
  • Improves logic of bbq_core()
  • Integrates 7G patterns to firewall rules
  • Removes some redundant firewall patterns
  • Adds protection against excessive characters
  • Adds logging functionality (disabled by default)
  • Adds filter hooks to customize blocked response
  • Replaces guangxiymcd with www\.(.*)\.cn
  • Changes plugin name to “BBQ Firewall”
  • Ažurira zadani predložak prijevoda
  • Updates/refines readme.txt
  • Tests on PHP 7.4 and 8.0
  • Tests on WordPress 5.6


  • Replaces guangxiymcd with wildcard match www.(.*).cn
  • Refines readme/documentation
  • Tests on WordPress 5.5


  • Adds guangxiymcd to Request URI and Query String patterns
  • Ispitivanje na WordPress inačici 5.4 + 5.5 (alfa)


  • Ispitivanja na WordPress inačici 5.4


  • Changes to plugins_url() for BBQ_URL constant
  • Ispitivanja na WordPress inačici 5.3


  • Nadograđene poveznice na sigurnosne (HTTPS) veze
  • Ispitivanja na WordPress inačici 5.3 (alfa)


  • Bumps minimum PHP version to 5.6.20
  • Adds activation check if BBQ Pro is active
  • Ažurira zadani predložak prijevoda
  • Ispitivanja na WordPress inačici 5.2


  • Improves function bbq_action_links()
  • Refines plugin settings screen UI
  • Stvara novi zadani predložak za prijevod
  • Ispitivanja na WordPress inačici 5.1 i 5.2 (alfa)


  • Ispitivanja na WordPress inačici 5.1


  • Adds homepage link to Plugins screen
  • Ažurira zadani predložak prijevoda
  • Ispitivanja na WordPress inačici 5.0


  • Removes .tar from Request URI patterns
  • Adds rel="noopener noreferrer" to all blank-target links
  • Updates GDPR blurb and donate link
  • Regenerates default translation template
  • Daljnja ispitivanja na WordPress inačici 4.9 i 5.0 (alfa)


  • Adds xrumer to blocked query strings and request URIs
  • Adds indoxploi to blocked query strings and request URIs
  • Generates new translation template
  • Ispitivanja na WordPress inačici 5.0


  • Nadograđena datoteka pročitajme.txt 🙂
  • Ispitivanja na WordPress inačici 4.9


  • Changes \/\.tar to \.tar in Request patterns
  • Changes \/\.bash to \.bash in Request patterns
  • Adds new User Agent patterns: shellshock, md5sum, \/bin\/bash
  • Adds new Request patterns: @@, @eval, \/file\:, \/php\:, \.cmd, \.bat, \.htacc, \.htpas, \.pass, usr\/bin\/perl, var\/lib\/php, wp-config\.php
  • Adds new Query String patterns: @@, \(0x, 0x3c62723e, \(\)\}, \:\;\}\;, \;\!--\=, @eval, eval\(, base64_, UNION(.*)SELECT, \/config\., \/wwwroot, \/makefile, \$_session, \$_request, \$_env, \$_server, \$_post, \$_get, phpinfo\(, shell_exec\(, file_get_contents, allow_url_include, disable_functions, auto_prepend_file, open_basedir, (benchmark|sleep)(\s|%20)*\(
  • Ispitivanja na WordPress inačici 4.9


  • Changed menu item name to “BBQ Firewall”
  • Ispitivanja na WordPress inačici 4.9 (alfa)


  • Dodaje stranicu za postavke dodataka
  • Dodaje francuski prijevod (hvala Bouzinu)
  • Stvara novi zadani predložak za prijevod
  • Ispitivanja na WordPress inačici 4.8


  • Replaces esc_html with esc_attr for link title attributes
  • Changes stable tag from trunk to latest version
  • Adds &raquo; to rate this plugin link
  • Ažuriranja URL-a poveznice za davanje ocjene ovog dodatka
  • Pomak “Idi na Pro inačicu” na akcijske veze
  • Renames action/meta link functions
  • Ažurira zadani predložak prijevoda
  • Ispitivanja na WordPress inačici 4.7 (beta)


  • Dodana podrška za prijevod
  • Dodane ikone dodataka i veći banner
  • General fine-tuning and testing
  • Ispitano na WordPress inačici 4.6


  • Removed \:\/\/ from Request URI and Query String patterns (see this thread)
  • Added (benchmark|sleep)(\s|%20)*\( to Request URI patterns (thanks to smitka)
  • Ispitano na WordPress inačici 3.5 (beta)


  • Added \.php\([0-9]+\), __hdhdhd.php to URI patterns (Thanks to George Lerner)
  • Added acapbot, semalt to User Agent patterns (Thanks to George Lerner)
  • Replaced UNION.*SELECT with UNION(.*)SELECT in Request URI patterns
  • Added morfeus, snoopy to User Agent patterns
  • Refactored redirect/exit functionality
  • Renamed rate_bbq() to bbq_links()
  • Ispitano na WordPress inačici 4.4 (beta)


  • Ispitivanja na WordPress inačici 4.3
  • Nadograđeni minimalni zahtjevi za inačicu
  • Istaknuta poveznica na Pro inačicu na zaslonu dodataka


  • Added wp-config.php to query-string patterns
  • Dodana je poveznica na dodatak BBQ Pro
  • Ispitivanja na WordPress inačici 4.3 (alfa)


  • Ispitano sa WordPress inačicom 4.2 i 4.3 (alfa)
  • Zamijenjene neke poveznice sa http na https u pročitajme.txt datoteci


  • introduce bbq_core()
  • Ispitano na posljednjoj dostupnoj inačici WordPress-a
  • tightened up code


  • tested on latest version of WordPress (4.0)
  • retested on Multisite
  • increased minimum version requirement to WP 3.7


  • Bugfix: added conditional checks for empty variables


  • tested on latest version of WordPress (3.8)
  • added link to rate plugin


  • removed ?> from script
  • added optional line for blocking long URLs
  • added line to prevent direct access to BBQ script
  • added \;Nt\., \=Nt\., \,Nt\. to request URI items
  • tested on latest version of WordPress (3.7)


  • replaced Nt\. with \/Nt\. (resolves comment editing/approval issue)


  • removed https\: (from previous version)
  • replaced \/https\/ with \/https\:
  • replaced \/http\/ with \/http\:
  • replaced \/ftp\/ with \/ftp\:


  • removed block for jakarta in user-agents
  • removed union from query strings
  • added to request-URI: \%2Flocalhost, Nt\., https\:, \.exec\(, \)\.html\(, \{x\.html\(, \(function\(
  • resolved PHP Notice “Undefined Index” via isset()


  • removed block for CONCAT in request-URI
  • removed block for environ in query-string
  • removed block for %3C and %3E in query-string
  • removed block for %22 and %27 in query-string
  • removed block for [ and ] in query-string (to allow unsafe characters used in WordPress)
  • removed block for ? in query-string (to allow unsafe character used in WordPress)
  • removed block for : in query-string (to allow unsafe character used by Google)
  • removed block for libwww in user-agents (to allow access to Lynx browser)


  • Removed : match from query string (Google disregards encoding)
  • Removed scanner from query string from query string match
  • Streamlined source code for better performance (thanks to juliobox)

Prethodne inačice

  • 2012/10/27 – Disabled check for long strings, disabled check for scanner
  • 2012/10/26 – Rebuilt plugin using 5G/6G technology
  • 2011/02/21 – Updated readme.txt file
  • 2009/12/30 – Added check for admin users
  • 2009/12/30 – Additional request strings added