NinjaFirewall (WP Edition) – Advanced Security Plugin and Firewall


Un véritable pare-feu applicatif

NinjaFirewall (WP Edition) is a true Web Application Firewall. Although it can be installed and configured just like a plugin, it is a stand-alone firewall that stands in front of WordPress.

It allows any blog administrator to benefit from very advanced and powerful security features that usually aren’t available at the WordPress level, but only in security applications such as the Apache ModSecurity module or the PHP Suhosin extension.

NinjaFirewall requires at least PHP 7.1, MySQLi extension and is only compatible with Unix-like OS (Linux, BSD). It is not compatible with Microsoft Windows.

NinjaFirewall can hook, scan, sanitise or reject any HTTP/HTTPS request sent to a PHP script before it reaches WordPress or any of its plugins. All scripts located inside the blog installation directories and sub-directories will be protected, including those that aren’t part of the WordPress package. Even encoded PHP scripts, hackers shell scripts and backdoors will be filtered by NinjaFirewall.

Powerful filtering engine

NinjaFirewall includes the most powerful filtering engine available in a WordPress plugin. Its most important feature is its ability to normalize and transform data from incoming HTTP requests which allows it to detect Web Application Firewall evasion techniques and obfuscation tactics used by hackers, as well as to support and decode a large set of encodings. See our blog for a full description: An introduction to NinjaFirewall filtering engine.

Fastest and most efficient brute-force attack protection for WordPress

Parce qu’il intercepte les requêtes HTTP avant même que WordPress et ses extensions se soient chargés, NinjaFirewall est la seule extension en mesure de protéger un blog contre de très grosses attaques par force brute, y compris les attaques distribuées provenant de plusieurs milliers d’adresses IP différentes.

See our benchmarks and stress-tests: Brute-force attack detection plugins comparison

The protection applies to the wp-login.php script but can be extended to the xmlrpc.php one. The incident can also be written to the server AUTH log, which can be useful to the system administrator for monitoring purposes or banning IPs at the server level (e.g., Fail2ban).

Détection en temps réel

File Guard peut détecter, en temps réel, tout accès à un fichier PHP qui a été récemment modifié ou créé, et vous alerter à ce sujet.
Si un pirate téléchargeait un script PHP sur votre site (ou injectait une porte dérobée dans un fichier existant) et essayait d’accéder directement à ce fichier en utilisant son navigateur ou un autre script, NinjaFirewall intercepterait la requête HTTP et détecterait immédiatement que le fichier a été récemment modifié ou créé. Il vous enverrait une alerte détaillée (nom du script, adresse IP, requête HTTP, la date et l’heure).

File integrity monitoring

File Check vous permet d’effectuer une analyse de l’intégrité de vos fichiers sur demande ou à un intervalle spécifique défini.
Vous devez créer un instantané de tous vos fichiers, puis, ultérieurement, vous pouvez scanner votre système pour le comparer avec l’instantané précédent. Toute modification sera immédiatement détectée : contenu, permissions et propriétés des fichiers, leur création et suppression ainsi que l’horodatage.

Watch your website traffic in real time

Live Log vous permet de voir, en direct, les connexions en cours en vous les affichant dans un format similaire à celui des journaux des serveurs HTTP (Apache, Nginx etc). Pour son fonctionnement, Live Log n’utilise aucun Fichier WordPress (par ex. admin-ajax.php). Il communique directement et uniquement avec le pare-feu. De ce fait, il est léger, rapide et n’affecte pas la charge du serveur, même si vous ajustez son intervalle de rafraîchissement de la page sur la fréquence la plus rapide.

Event Notifications

NinjaFirewall can alert you by email on specific events triggered within your blog. Some of those alerts are enabled by default and it is highly recommended to keep them enabled. It is not unusual for a hacker, after breaking into your WordPress admin console, to install or just to upload a backdoored plugin or theme in order to take full control of your website. NinjaFirewall can also attach a PHP backtrace to important notifications.

Evénements :

  • Administrator login.
  • Modification of any administrator account in the database.
  • Plugins upload, installation, (de)activation, update, deletion.
  • Themes upload, installation, activation, deletion.
  • WordPress update.
  • Pending security update in your plugins and themes.

Stay protected against the latest WordPress security vulnerabilities

Pour bénéficier de la protection la plus efficace, vous pouvez demander à NinjaFirewall de mettre à jour ses règles de sécurité automatiquement. Chaque fois qu’une nouvelle vulnérabilité est découverte dans WordPress, ses extensions ou ses thèmes, un nouvel ensemble de règles de sécurité est disponible pour protéger contre cette vulnérabilité. Les mises à jour peuvent être effectuées chaque jour, deux fois par jour ou même une fois par heure.

Strong Privacy

Unlike a Cloud Web Application Firewall, or Cloud WAF, NinjaFirewall works and filters the traffic on your own server and infrastructure. That means that your sensitive data (contact form messages, customers credit card number, login credentials etc) remains on your server and is not routed through a third-party company’s servers, which could pose unnecessary risks (e.g., decryption of your HTTPS traffic in order to inspect it, employees accessing your data or logs in plain text, theft of private information, man-in-the-middle attack etc).

Your website can run NinjaFirewall and be compliant with the General Data Protection Regulation (GDPR). See our blog for more details.

IPv6 compatibility

IPv6 compatibility is a mandatory feature for a security plugin: if it supports only IPv4, hackers can easily bypass the plugin by using an IPv6. NinjaFirewall natively supports IPv4 and IPv6 protocols, for both public and private addresses.

Multi-site support

NinjaFirewall is multi-site compatible. It will protect all sites from your network and its configuration interface will be accessible only to the Super Admin from the network main site.

Possibility to prepend your own PHP code to the firewall

You can prepend your own PHP code to the firewall with the help of an optional distributed configuration file. It will be processed before WordPress and all its plugins are loaded. This is a very powerful feature, and there is almost no limit to what you can do: add your own security rules, manipulate HTTP requests, variables etc.

Low Footprint Firewall

NinjaFirewall is very fast, optimised, compact, and requires very low system resource.
See for yourself: download and install the Code Profiler plugin and compare NinjaFirewall’s performance with other security plugins.

Non-Intrusive User Interface

NinjaFirewall looks and feels like a built-in WordPress feature. It does not contain intrusive banners, warnings or flashy colors. It uses the WordPress simple and clean interface and is also smartphone-friendly.

Aide contextuelle

Each NinjaFirewall menu page has a contextual help screen with useful information about how to use and configure it.
If you need help, click on the Help menu tab located in the upper right corner of each page in your admin panel.

Need more security ?

Check out our new supercharged edition: NinjaFirewall WP+ Edition

  • Unix shared memory use for inter-process communication and blazing fast performances.
  • IP-based Access Control.
  • Role-based Access Control.
  • Country-based Access Control via geolocation.
  • URL-based Access Control.
  • Bot-based Access Control.
  • Centralized Logging.
  • Antispam for comment and user regisration forms.
  • Rate limiting option to block aggressive bots, crawlers, web scrapers and HTTP attacks.
  • Response body filter to scan the output of the HTML page right before it is sent to your visitors browser.
  • Better File uploads management.
  • Better logs management.
  • Syslog logging.

Learn more about the WP+ Edition unique features. Compare the WP and WP+ Editions.


  • WordPress 4.7+
  • Admin/Superadmin with manage_options + unfiltered_html capabilities.
  • PHP 7.1+
  • MySQL or MariaDB with MySQLi extension
  • Apache / Nginx / LiteSpeed / Openlitespeed compatible
  • Unix-like operating systems only (Linux, BSD etc). NinjaFirewall is NOT compatible with Microsoft Windows.

Captures d’écran

  • Overview page.
  • Statistics and benchmarks page.
  • Options page.
  • Policies pages 1/3: NinjaFirewall has a large list of powerful and unique policies that you can tweak accordingly to your needs.
  • Policies pages 2/3: NinjaFirewall has a large list of powerful and unique policies that you can tweak accordingly to your needs.
  • Policies pages 3/3: NinjaFirewall has a large list of powerful and unique policies that you can tweak accordingly to your needs.
  • File Guard: this is a totally unique feature, because it can detect, in real-time, any access to a PHP file that was recently modified or created, and alert you about this.
  • File Check: lets you perform file integrity monitoring upon request or on a specific interval (hourly, twicedaily, daily).
  • Event notifications can alert you by email on specific events triggered within your blog.
  • Login page protection: the fastest and most efficient brute-force attack protection for WordPress.
  • Journal du Pare-feu.
  • Live Log: lets you watch your website traffic in real time. It is fast, light and it does not affect your server load.
  • Éditeur de Règles.
  • Security rules updates.
  • Aide contextuelle.
  • Dashboard widget.


  1. Upload ninjafirewall folder to the /wp-content/plugins/ directory.
  2. Activez l’extension par l’intermédiaire du menu « Extensions » de WordPress.
  3. Plugin settings are located in ‘NinjaFirewall’ menu.


En quoi NinjaFirewall diffère des autres extensions de sécurité pour WordPress ?

NinjaFirewall stands between the attacker and WordPress. It can filter requests before they reach your blog and any of its plugins. This is how it works :

Visitor -> HTTP server -> PHP -> NinjaFirewall #1 -> WordPress -> NinjaFirewall #2 -> Plugins & Themes -> WordPress exit -> NinjaFirewall #3

And this is how all WordPress plugins work :

Visitor > HTTP server > PHP > WordPress > Plugins -> WordPress exit

Unlike other security plugins, it will protect all PHP scripts, including those that aren’t part of the WordPress package.

How powerful is NinjaFirewall?

NinjaFirewall includes a very powerful filtering engine which can detect Web Application Firewall evasion techniques and obfuscation tactics used by hackers, as well as support and decode a large set of encodings. See our blog for a full description: An introduction to NinjaFirewall 3.0 filtering engine.

Ai-je besoin d’avoir les privilèges root pour installer NinjaFirewall ?

NinjaFirewall does not require any root privilege and is fully compatible with shared hosting accounts. You can install it from your WordPress admin console, just like a regular plugin.

Est-ce qu’il fonctionne avec Nginx ?

NinjaFirewall works with Nginx and others Unix-based HTTP servers (Apache, LiteSpeed etc). Its installer will detect it.

Dois-je modifier mes script PHP ?

You do not need to make any modifications to your scripts. NinjaFirewall hooks all requests before they reach your scripts. It will even work with encoded scripts (ionCube, ZendGuard, SourceGuardian etc).

I moved my wp-config.php file to another directory. Will it work with NinjaFirewall ?

NinjaFirewall cherchera le script wp-config.php dans le répertoire courant ou, si il ne le trouve pas, dans le répertoire parent.

Will NinjaFirewall detect the correct IP of my visitors if I am behind a CDN service like Cloudflare ?

You can use an optional configuration file to tell NinjaFirewall which IP to use. Please follow these steps.

Will it slow down my site ?

Your visitors will not notice any difference with or without NinjaFirewall. From WordPress administration console, you can click « NinjaFirewall > Status » menu to see the benchmarks and statistics (the fastest, slowest and average time per request). NinjaFirewall is very fast, optimised, compact, requires very low system resources and outperforms all other security plugins.
By blocking dangerous requests and bots before WordPress is loaded, it will save bandwidth and reduce server load.

Is there any Microsoft Windows version ?

NinjaFirewall works on Unix-like servers only. There is no Microsoft Windows version and we do not expect to release any.


30 octobre 2023
Pretty brutal experience. Looking for a virus scanner. Turns out they have two plugins (why???) and I installed the "firewall" version. So I went to deactivate it and of course it says "There has been a critical error on this website. Please check your site admin email inbox for instructions. Learn more about troubleshooting WordPress." Frustrating. None of these plugins are simple. What happened to the days of installing a barebones WordPress plugin and it just worked?
22 août 2023
I did extensive WAF tests using online WAF testers and found NinjaFirewall to be the best WordPress security plugin offering. WordFence is only half-good compared to this and much slower too. NinjaFirewall works great! God bless. Thanks bunch. P.S. Please consider adding "WAF" to the tags on the plugin's page for easy finding when some search for security plugins.
21 janvier 2023
I highly recommend the NinjaFirewall security plugin for any WP website. While other security plugins are busy with their marketing hype and marketing bs blogs... NinjaFirewall is true to its word, straight to the point, and real WAF for WP sites. No fancy colors, no marketing hype, no pale sugar coating. You can also confirm these on their blog where they research, study, analyze, and share security-related topics and vulnerabilities (while other security plugins are busy with their marketing seo thingy blogs). I will entrust my WP site with this WAF that has already existed for 10+ years. They have mastered (and continuously improve) the WP site protection. In terms of security plugins, don't look for fancy texts or colorful interfaces. Look for simple, fast and efficient. If you're serious about security, you must train yourself to read plain text. As a matter of fact, this plugin is very easy to use and works right out of the box. This is a non-bloated security plugin that you can rely on. In summary, it is easy to install and set up, and offers a wide range of features to protect your site from security threats. The plugin includes a firewall to block malicious traffic, manual malware scans to detect any issues, and a built-in backup system to keep your data safe. (P.S. Just make sure your themes and other plugins are compatible with this security plugin. I have one site which throws false positives by this plugin when a user is submitting their comments. In the logs, it detects <div class="alert-message success"> of my theme as a Cross-site scripting threat whereby blocking my users/visitors.) Maybe support can check further.)
Lire les 202 avis

Contributeurs/contributrices & développeurs/développeuses

« NinjaFirewall (WP Edition) – Advanced Security Plugin and Firewall » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.


“NinjaFirewall (WP Edition) – Advanced Security Plugin and Firewall” a été traduit dans 7 locales. Remerciez l’équipe de traduction pour ses contributions.

Traduisez « NinjaFirewall (WP Edition) – Advanced Security Plugin and Firewall » dans votre langue.

Le développement vous intéresse ?

Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.


Need more security? Take the time to explore our supercharged Premium edition: NinjaFirewall WP+ Edition


  • Added compatibility with blogs that don’t have a database prefix.
  • In the « Custom HTTP headers » section, NinjaFirewall will automatically convert header names to lowercase.
  • Fixed a potential « Timezone ID is invalid » PHP notice when viewing the log.
  • Updated Charts.js library.
  • WP+ Edition (Premium): Updated GeoIP databases.
  • Small fixes and adjustments.


  • Added a new policy to protect against user accounts deletion. It can be found in the « Firewall Policies > WordPress > Permissions » section.
  • Fixed an issue with the firewall log where the time and date could be using the wrong timezone.
  • Fixed a PHP deprecated notice in the sodium_crypto_generichash function.
  • WP+ Edition (Premium): Fixed a bug in the firewall where some uploaded images could be wrongly blocked.
  • Updated Charts.js library.
  • Small fixes and adjustments.
  • WP+ Edition (Premium): Updated GeoIP databases.


  • Added a « Line wrapping » checkbox in the « Live Log » page: it can be used to wrap or unwrap the lines in the textarea field.
  • Updated Charts.js library.
  • Small fixes and adjustments.
  • WP+ Edition (Premium): Updated GeoIP databases.


  • You can now select to block access to the REST API only if the user is not authenticated. See « Firewall Policies > WordPress REST API > Allow logged-in users to access the API ».
  • Fixed an accessibility issue with the toggle switches used in NinjaFirewall’s settings. They were not compatible with screen readers.
  • Added a new constant that can be used to change the frequency used by the firewall to monitor the database: NFW_DBCHECK_INTERVAL. It can be added to the wp-config.php or .htninja script. For instance, a 300-second interval: define('NFW_DBCHECK_INTERVAL', 300);. The lowest possible value, which is also the default, is 60 seconds.
  • Small fixes and adjustments.
  • WP+ Edition (Premium): Updated GeoIP databases.


  • WP+ Edition (Premium): Updated GeoIP databases.
  • Updated Charts.js library.
  • Small fixes and adjustments.


  • NinjaFirewall will always rely on the timezone that was set by WordPress and PHP, and will no longer attempt to set it.
  • Updated Charts.js library.
  • Small fixes and adjustments.
  • WP+ Edition (Premium): Updated GeoIP databases.


  • Fixed a potential « syntax error » on sites running PHP <=7.2.
  • Fixed a bug where quotes in « Custom HTTP headers » values were escaped with slashes.
  • Updated Charts.js library.
  • WP+ Edition (Premium): Updated GeoIP databases.
  • Small fixes and adjustments.


  • Fixed several deprecated messages on websites running PHP 8.1.
  • Updated Charts.js library.
  • Small fixes and adjustments.
  • WP+ Edition (Premium): Updated GeoIP databases.


  • Fixed a PHP « Cannot use object of type WP_Error as array » error.
  • Activating/deactivating NinjaFirewall from WP CLI doesn’t require the --user parameter anymore.
  • On websites running PHP 7.3 or above, NinjaFirewall will use the hrtime() function instead of microtime() for its metrics, because it is more reliable as it is not based on the internal system clock.
  • WP+ Edition (Premium): Fixed a bug with right-to-left (RTL) WordPress sites where the checkboxes below the log were all messed up.
  • The detection of base64-encoded injection has been slightly tweaked to lower the risk of false positives.
  • WP+ Edition (Premium): The Bot Access Control input now accepts the following 6 additional characters: ( ) , ; ' ".
  • The « Monthly Statistics » graph and tooltip colours were improved.
  • Updated Charts.js library.
  • Small fixes and adjustments.
  • WP+ Edition (Premium): Updated GeoIP databases.


  • Added the possibility to enter custom HTTP response headers. See « Firewall Policies > Advanced Policies > HTTP response headers > Custom HTTP headers ».
  • Added the possibility to view the server’s HTTP response headers. Click on the « Firewall Policies > Advanced Policies > HTTP response headers > HTTP headers test » button.
  • Added a warning if WordPress is running inside a Docker image and the user wants to upgrade NinjaFirewall to Full WAF mode.
  • Fixed a PHP « Undefined array key pluginzip » warning when reinstalling a plugin from a ZIP archive.
  • WP+ Edition (Premium): The Access Control URI whitelist and blacklist now support permalinks.
  • Fixed an issue where the daily report could be sent multiple times on some multisite installations.
  • Fixed deprecated readonly() function message on WordPress 5.9.
  • Fixed an issue where the firewall would wrongly send a WordPress update notification.
  • WP+ Edition (Premium): Updated Stripes webhook notifications IP addresses in the Access Control section.
  • Updated Charts.js library.
  • WP+ Edition (Premium): Updated GeoIP databases.
  • Many small fixes and adjustments.