Plugin / NinjaFirewall (WP Edition) – Advanced Security

The Ninja Technologies Network

Changelog

Changelog

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

4.0.5

  • The “Event Notifications” code was rewritten from scratch.
  • The “Full WAF” installer will rely on the get_home_path function rather than the ABSPATH constant in order to better detect if WordPress was installed into its own directory.
  • WP+ Edition (Premium): Updated IPv4/IPv6/ASN GeoIP databases.
  • Small fixes and adjustments.

4.0.4

  • Improved firewall engine: Fixed a bug in the HTML entities decoder and added ES6 unicode detection and decoding.
  • WP+ Edition (Premium): Updated IPv4/IPv6/ASN GeoIP databases.

4.0.3

We have simplified the menu structure and reduced the total number of menuitems from 15 to 10 (WP Edition) and from 19 to 12 (WP+ Edition):

  • New menuitem: “Dashboard”. It includes the former “Overview”, “Statistics” and “About”. In the premium WP+ Edition, it also includes “License”.
  • New menuitem: “Monitoring”. It includes “File Guard” and “File Check”. In the premium WP+ Edition, it also includes “Web Filter”.
  • New menuitem: “Logs”. It includes “Firewall Log” and “Live Log”. In the premium WP+ Edition, it also includes “Centralized Logging”.
  • New menuitem: “Security Rules”. It includes “Rules Updates” and “Rules Editor”.
  • Fixed a potential “Undefined index: size” PHP notice.
  • Fixed missing CSS on the Login Protection page input fields.
  • WP+ Edition (Premium): Updated IPv4/IPv6/ASN GeoIP databases.
  • Small fixes and adjustments.

4.0.2

  • Added a new policy to enable the “SameSite” flag on cookies in order to protect against cross-site request forgery (CSRF) attacks. See “Firewall Policies > Advanced Policies > HTTP response headers > Force SameSite flag on all cookies”.
  • Fixed a bug in multisite installations: when additional superadmin users were created, they were not whitelisted by the firewall because WordPress does not assign them a “capabilities” meta_key in the database.
  • Fixed a bug in the firewall engine sanitizing function: when dealing with an empty string, the function was returning NULL rather than returning the empty value.
  • Fixed a bug in the “Login Protection” menu: after changing the “GET/POST” options, reloading the page reset them to the default value.
  • Fixed a “Undefined variable: phpini” PHP notice in the uninstaller.
  • Improved the code used to detect if another instance of the firewall is running in a parent directory.
  • WP+ Edition (Premium): Updated IPv4/IPv6/ASN GeoIP databases.
  • Several small fixes and adjustments.

4.0.1

  • Fixed a bug where it was not possible to disable the “Strict-Transport-Security HTSC” advanced policy.
  • Fixed a potential “Undefined index: size” PHP notice that could occur during uploads.
  • Fixed a bug where the firewall log was wrongly displaying “DEBUG_ON” instead of “INFO” in the “Level” column.
  • Fixed a potential “The plugin does not have a valid header” error message when activating NinjaFirewall. On some installations, WordPress was not loading the right file.
  • WP+ Edition (Premium): Updated IPv4/IPv6/ASN GeoIP databases.

4.0

  • Improved NinjaFirewall overall interface and pages layout; added some simple toggle switches to replace radio buttons, better handling of error messages, cleaned up useless code etc.
  • All JavaScript code was 100% rewritten from scratch, including all features that rely on it (e.g., “Live Log” etc).
  • The installer was removed: When activating NinjaFirewall for the first time, it will automatically install itself in “WordPress WAF” mode. To upgrade to “Full WAF” mode, simply click on the corresponding link in the “Overview” page. The process is now very straightforward! A “sandbox” was added too, so that if there were a crash during the process, NinjaFirewall would undo the changes and warn the user.
  • When NinjaFirewall is running in “Full WAF” mode, if the PHP INI file used to load its firewall was deleted by mistake, it would automatically fallback to “WordPress WAF” mode so that the blog will remain protected.
  • Fixed the admin login page bug where some users had to enter their credentials twice.
  • The “Block the DOCUMENT_ROOT server variable in HTTP request” policy will not be enabled by default with new installations of NinjaFirewall.
  • NinjaFirewall will not block users with author and editor role while they are editing a post or page using either the Classic or the new Block Editor.
  • Added Openlitespeed detection to the “Full WAF” mode installer.
  • WP+ Edition (Premium): The “Access Control” pages interface was simplified: it now uses simple textarea elements where you can copy/paste your data (URL, IP, Bot and User Input) very easily. The “Geolocation” page was simplified too.
  • WP+ Edition (Premium): In addition to an IP address or CIDR, you can now also enter an AS number (Autonomous System number). This new feature is very helpful if you want to allow or block all IPs from an ISP or hosting company: just enter their AS number instead of hundreds of IP addresses. Syntax is “AS” + the number, e.g. “AS12345”. See “Access Control > IP Access Control”.
  • WP+ Edition (Premium): You can now add an IP to the Access Control blacklist or whitelist from the “Firewall Log” page by entering the IP in the input field below the log textarea.
  • WP+ Edition (Premium): When running in “WordPress WAF” mode, NinjaFirewall will automatically disable the shared memory option, because that feature is only useful when used in “Full WAF” mode (there is no benefit at all to run it in “WordPress WAF” mode).
  • WP+ Edition (Premium): Fixed a bug where the ISO 3166 country code was not found when using an external PHP Variable instead of the built-in GeoIP database.
  • WP+ Edition (Premium): Improved malicious SVG files detection.
  • WP+ Edition (Premium): Updated IPv4/IPv6/ASN GeoIP databases.
  • Many fixes and adjustments.

3.9.1

  • Fixed potential “Nesting level too deep – recursive dependency” error message in the backend.
  • You can select the verbosity of the PHP backtrace attached to email notifications: low, medium or high verbosity. See “Event Notification > PHP backtrace”.
  • Added a new policy to protect the admin-ajax.php script against malicious bots and scanners. See “Firewall Policy > Basic Policies > WordPress AJAX”.
  • WP+ Edition (Premium): NinjaFirewall can check for security rules updates as often as every 15 minutes (versus one hour for the free WP Edition). See “Rules Update > Check for updates”.
  • WP+ Edition (Premium): Added a new access control section: “User Input Access Control”. It can be used to ignore or block specific user input (GET, POST and COOKIE). See “Access Control > User Input”.
  • WP+ Edition (Premium): Role-based Access Control has been improved: it will display all user roles available on the blog, including custom ones from all third-party applications (e.g., WooCommerce, bbPress etc) so that they can be whitelisted too.
  • WP+ Edition (Premium): The / character is now allowed in the Bot Access Control.
  • Improved user_roles protection to prevent blocking third-party applications than may modify it when a non-administrator user is logged-in.
  • Many small fixes, adjustments and improvements.

3.8.4

  • Fixed a potential “Call to undefined function wp_get_current_user()” error that may occur with plugins such as RevSlider.

3.8.3

  • NinjaFirewall will attach a PHP backtrace to some important email notifications (see “Event Notifications > PHP backtrace”).
  • Fixed an issue where the firewall could not connect to the database if its password contained an escaped single quote.
  • Fixed an issue where it was not possible to use the WordPress plugin and theme editor. This is due to a bug introduced in WordPress 4.9.2 which does not play well with PHP sessions (see https://core.trac.wordpress.org/ticket/43358).
  • The firewall will detect if the PHP mysqli extension is missing or is not loaded and will warn the admin in the backend.
  • Improved TLS detection for servers that are behind a load-balancer or reverse proxy.
  • Various fixes and adjustments.

3.8.2

  • Improved the firewall engine to detect shell command obfuscation tricks using uninitialized variables (e.g. ?a=cat$foo $foo/etc/$foo/passwd$foo).
  • Added a policy to disable the fatal error handler introduced in WordPress 5.1. See “Firewall Policies > Basic Policies > Disable the fatal error handler”.
  • Disabled the firewall when running WP-CLI.
  • If the firewall settings were corrupted, the garbage collector would restore the last known good configuration backup. If there is no backup available, it will restore its default settings so that NinjaFirewall will keep working and protecting the site.
  • Various fixes and adjustments.
  • [WP+ Edition] Updated IPv4/IPv6 GeoIP databases.

3.8.1

  • Fixed a potential issue where the firewall configuration could be corrupted when attempting to restore a backup from the Firewall Options page right after updating to version 3.8.

3.8

  • A lot of code was cleaned-up, fixed and improved as well as the whole files structure of the plugin.
  • Increased the height of the textarea in the “Firewall Log” and “Live Log” pages.
  • Fixed an issue where some caching plugins could mess with the database monitoring process which could return erroneous results.
  • Improved the database monitoring process for blogs that have a huge amount of rows in the “wp_usermeta” table.
  • The “File Check” notification will include the number of new, modified and deleted files in the body of the email.
  • [WP+ Edition] Added an option to disable login alerts for users whose IP address is whitelisted. See “NinjaFirewall > Event Notifications > Do not send a notification if the user is in the IP Access Control whitelist”.
  • [WP+ Edition] Fixed an issue where, after deleting the log, it was once again deleted if the page was reloaded in the browser.
  • Fixed an issue where any auto_prepend_file directive left by another application in the .htaccess was not removed before starting the installation of NinjaFirewall on servers running LiteSpeed or Apache + mod_php.
  • [WP+ Edition] Updated IPv4/IPv6 GeoIP databases.

3.7.2

  • Added a new option to block any attempt by non-admin users to modify some important WordPress settings (e.g., by exploiting a vulnerability, using a backdoor etc). See “Firewall Policies > Basic Policies > Block attempts to modify important WordPress settings”.
  • [WP+ Edition] Fixed a bug in the “Web Filter” callback function where the firewall was writing its log in the /wp-content/ folder instead of /wp-content/nfwlog/.
  • [WP+ Edition] Updated IPv4/IPv6 GeoIP databases.
  • Small fixes and adjustments.

3.7.1

  • Fixed two potential PHP notices in the firewall on systems running PHP 7.2+.
  • Added a function to the firewall engine to detect octal-encoded values that could be used as WAF evasion techniques (e.g. ?foo=\050\141\154\145\162\164\051\050\170\163\163\051).
  • If you have a complex database setup that NinjaFirewall is not able to properly retrieve, you can give it a MySQLi link identifier in the .htninja instead. See “Giving NinjaFirewall a MySQLi link identifier” at http://nin.link/htninja/ for more details.
  • Added right to left language support.
  • Improved HTTPS detection in the firewall.
  • [WP+ Edition] Updated IPv4/IPv6 GeoIP databases.
  • Fixed potential “ini_set” PHP warning when a session was started by another plugin.
  • Many small fixes and adjustments.

3.7

  • Added a new option to the “Live Log” page: you can apply filters in order to include or exclude files and folders. See “Live Log > Inclusion and exclusion filters”.
  • Added a new option to the “Firewall Options” page: NinjaFirewall will automatically backup its configuration (options, policies and rules) everyday for the last 5 days so that you can restore its configuration to an earlier date if needed. See “Firewall Options > Configuration backup”.
  • [WP+ Edition] The “IP Access Control” whitelist and blacklist can now support CIDR notation for IPv4 and IPv6 (e.g., 66.155.0.0/17, 2c0f:f248::/32).
  • Added a warning to the “Login Protection” page if Jetpack is installed and the XML-RPC API protection is activated.
  • Added a notice to the “Login Protection” page to remind that the “Authentication log” option can only work when the protection is set to “Yes, if under attack”.
  • Fixed a potential “401 Unauthorized” HTTP response when attempting to access the XMLRPC API using a non-POST method.
  • [WP+ Edition] Updated IPv4/IPv6 GeoIP databases.
  • Minor fixes.

3.6.8

  • Fixed an issue where third-party plugins making use of PHP session but without properly checking the status of the current session could behave erratically.

3.6.7

  • Added a new option to block any attempt (e.g., exploiting a vulnerability, using a backdoor etc) to create a user account. See “Firewall Policies > Basic Policies > Block user accounts creation”.
  • The “Daily Activity Report” will include the domain name of the blog in the email subject.
  • Fixed a potential “Zend OPcache API ” warning message when saving the “Login Protection” options.
  • The “Updates” menu was renamed to “Rules Update”.
  • Improved PHP session handling.
  • Fixed a potential “Call to a member function close() on null” PHP error in the firewall.
  • [WP+ Edition] Fixed a bug in the “Web Filter” page where the button to submit the HTML form was not visible.
  • [WP+ Edition] Updated IPv4/IPv6 GeoIP databases.
  • Minor fixes and adjustments.

3.6.6

  • The “Statistics” page and dashboard widget will display the same values. Previously, the total of blocked threats displayed in the “Statistics” page was reset if the corresponding firewall log was deleted.
  • Fixed a bug in the Garbage Collector: in some cases, the firewall log was deleted a few days later than expected.
  • The Garbage Collector will still be able to run even if WP-Cron is disabled.
  • Fixed an issue introduced in WordPress 4.9.6: NinjaFirewall was not visible in the list of plugins when using WP-CLI. Note that if you want to enable/disable it from WP-CLI you will need to append the --user switch to your command (e.g., $ wp plugin activate nfwplus --user=some_admin).
  • Minor fixes.

3.6.5

  • The brute-force protection will not be triggered when users click on the email confirmation link, which points to the wp-login.php script, sent by the new WordPress “Export Personal Data” feature.
  • The firewall will automatically detect if the blog runs on an old multisite installation where the main site options table is named “wp_1_options” instead of “wp_options”.

3.6.4

  • Fixed potential “session_status()” error with old PHP installations.

3.6.3

  • Added the “Referrer-Policy” header (see “Firewall Policies > Advanced Policies > HTTP response headers”).
  • Added the “418 I’m a teapot” HTTP error code (see “Firewall Options > HTTP error code to return”).
  • Modified how PHP sessions were handled in order to prevent conflicts with third-party applications that may attempt to start a session without checking if one was already started (e.g., Piwik/Zend Framework, phpMyadmin).
  • Added more options to the X-XSS-Protection header; it can be set to “0”, “1”, “1; mode=block” or disabled (see “Firewall Policies > Advanced Policies > HTTP response headers”).
  • [WP+ Edition] Updated IPv4/IPv6 GeoIP databases.
  • Minor fixes.

3.6.2

  • Added an option to automatically delete the firewall log(s) after a period of time (see “NinjaFirewall > Firewall Log > Auto-delete log”).
  • Added an option to enter the admin email address during the installation process.
  • [WP+ Edition] The “Access Control” page was split into 5 tabs: “General”, “Geolocation”, “IP Access Control”, “URL Access Control” and “Bot Access Control”.
  • [WP+ Edition] Updated IPv4/IPv6 GeoIP databases.
  • Many small fixes throughout the code: bugs, typos, contextual help corrections, various adjustments etc.

3.6.1

  • Added “IP Anonymization” option. It will anonymize IP addresses in the firewall log by removing their last 3 characters. See “NinjaFirewall > Firewall Options > IP Anonymization”.
  • Fixed a bug where the “Login Protection” wrongly applied to password protected pages.
  • Fixed a bug where the garbage collector cron job was not deleted when NinjaFirewall was disabled.
  • Added a warning that NinjaFirewall requires unfiltered_html capability when attempting to activate it.
  • [WP+ Edition] The “Uploads > Allow, but block scripts, ELF and system files” firewall policy was renamed to “Allow, but block dangerous files” and will also block dangerous SVG files. Therefore, the complete list of blocked files is now: scripts (PHP, CGI, Ruby, Python, bash/shell), C/C++ source code, binaries (MZ/PE/NE and ELF formats), system files (.htaccess, .htpasswd and PHP INI) and SVG files containing Javascript/XML events.
  • [WP+ Edition] Updated IPv4/IPv6 GeoIP databases.
  • Minor fixes.

v3.6

  • Important: We have removed the “Anti-Malware” option from NinjaFirewall. Instead, we have now a brand new and much better antivirus plugin: NinjaScanner. You can download it from wordpress.org: https://wordpress.org/plugins/ninjascanner/
  • [WP+ Edition] Fixed a bug where IPs that were whitelisted in the “Access Control” page could not connect to the REST API if its access was disabled in the “Firewall Policies”.
  • [WP+ Edition] Updated IPv4/IPv6 GeoIP databases.
  • Minor fixes.

Ratings

4.8
131 reviews

Rating breakdown

Details Information

Version

4.0.5

First Released

29 Mar, 2013

Total Downloads

577,227

Wordpress Version

3.7 or higher

Tested up to:

5.3

Require PHP Version:

5.3 or higher

Tags

Contributors

Languages

DIRECTORY DISCLAIMER

The information provided in this THEME/PLUGIN DIRECTORY is made available for information purposes only, and intended to serve as a resource to enable visitors to select a relevant theme or plugin. wpSocket gives no warranty of any kind, express or implied with regard to the information, including without limitation any warranty that the particular theme or plugin that you select is qualified on your situation.

The information in the individual theme or plugin displayed in the Directory is provided by the owners and contributors themselves. wpSocket gives no warranty as to the accuracy of the information and will not be liable to you for any loss or damage suffered by you as a consequence of your reliance on the information.

Links to respective sites are offered to assist in accessing additional information. The links may be outdated or broken. Connect to outside sites at your own risk. The Theme/Plugin Directory does not endorse the content or accuracy of any listing or external website.

While information is made available, no guarantee is given that the details provided are correct, complete or up-to-date.

wpSocket is not related to the theme or plugin, and also not responsible and expressly disclaims all liability for, damages of any kind, arising out of the use, reference to, or reliance on, any information or business listed throughout our site.

Keep Leading Your Followers!
Share it for them.