This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Description

Gauntlet Security can find opportunities for improving the security of your site. It checks many aspects of the site’s configuration including file permissions, server software, PHP, database, plugins, themes, and user accounts. The plugin will give each check a pass, warning, or fail and explain in clear language how you can fix the issue.

How you ultimately choose to patch these issues is up to you but whatever method you use, this plugin should always provide an accurate report. It does not make changes to your database or to any of your files and it should be compatible with all other security plugins.

Checks and recommendations include:

  • Set correct file and directory permissions
  • Turn off directory indexing
  • Prevent code execution in the uploads directory
  • Block files in the includes directory
  • Prevent access to stray files which could be useful to attackers
  • Keep PHP up-to-date
  • Disable dangerous PHP functions
  • Disable allow_url_include and allow_url_fopen PHP flags
  • Turn off the display of PHP errors
  • Don’t advertise the PHP version you are running
  • Use a strong database password
  • Change the default database table prefix
  • Keep WordPress up-to-date
  • Turn off file editing in the control panel
  • Set security keys in WP-Config file
  • Don’t advertise the WordPress version you are running
  • Turn off self-registration
  • Force SSL when accessing the admin area
  • Review the development activity and reputation of all plugins
  • Remove unused themes from the server
  • Rename the plugin directory
  • Move the active theme to an alternate location
  • Do not use TimThumb
  • Do not use common user names (such as “admin”)
  • Do not use weak passwords
  • Do not have a user with an ID = 1
  • Minimize the number of admin users
  • Users should not display their login usernames publicly
  • Prevent username enumeration through standard author URLs
  • …more tests planned

Check the screenshots for more detail on some of the above features.

Many of these security checks are based on recommendations from the WordPress codex: https://codex.wordpress.org/Hardening_WordPress.

Disclaimer

Some of the tips included in this plugin only require making small changes to configuration files (.htaccess, php.ini, wp-config.php, functions.php). Others require more in-depth changes to the filesystem or database. Before attempting any of these fixes, you should be comfortable experimenting and know how to undo any change you make. That includes making backups and knowing how restore your site from those backups. I can’t guarantee that the recommendations or sample code provided in this plugin will not break your site or that they will prevent it from being hacked.

Requirements

  • Apache web server
  • WordPress 3.4 minimum
  • PHP 5.2.7 minimum

Screenshots

  • The main page.
  • All checks include a detailed explanation and instructions on how to fix the issue.
  • Not all issues need to be fixed. Less important tests are included for the paranoid.
  • The plugin check will raise red flags if plugins aren’t being maintained or haven’t been updated

Installation

Using The WordPress Dashboard

  1. Navigate to the ‘Add New’ in the plugins dashboard
  2. Search for ‘gauntlet security’
  3. Click ‘Install Now’
  4. Activate the plugin on the Plugin dashboard

Multisite

  1. Navigate to ‘Network Admin’ > ‘Plugins’ in the top toolbar (must be logged in as a Super Admin)
  2. Click ‘Add New’ in the plugins dashboard
  3. Search for ‘gauntlet security’
  4. Click ‘Install Now’
  5. Click ‘Network Activate’ on the Plugin dashboard. Only Super Admin users can access and use the plugin.

Uploading in WordPress Dashboard

  1. Navigate to the ‘Add New’ in the plugins dashboard
  2. Navigate to the ‘Upload’ area
  3. Select ‘gauntlet-security.zip’ from your computer
  4. Click ‘Install Now’
  5. Activate the plugin in the Plugin dashboard

Using FTP

  1. Download ‘gauntlet-security.zip’
  2. Extract the ‘gauntlet-security’ directory to your computer
  3. Upload the ‘gauntlet-security’ directory to the ‘/wp-content/plugins/’ directory
  4. Activate the plugin in the Plugin dashboard

FAQ

Why doesn’t this plugin make these changes automatically?

Most of this plugin’s recommendations are server configurations or WordPress configurations that only need to be set once. My belief is that plugins should not be making permanent changes to your site’s configuration. Any change a plugin makes, it should be able to undo. Other plugins can automate a few of these hardening techniques for you, but if something breaks it’s not always easy to figure out what the plugin did and how to revert it.

Reviews

Setyembre 27, 2017
Can’t recommend this plugin enough for ensuring a site is locked down. Particularly useful is the plugin scanner feature which I run on every site. Very clear design and instructions.
Setyembre 3, 2016
Extension indispensable même si on utilise une extension de sécurité type WP security. Elle scanne l’installation Wordress, identifie les failles et – cerise sur le gâteau – donne les solutions pour les combler. Merci.
Setyembre 3, 2016
Nice piece of code and very, very usefull. Thanks.
Read all 8 reviews

Contributors & Developers

“Gauntlet Security” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Gauntlet Security” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.4.1

  • New test: Move the active theme to an alternate location
  • Enhancement: Now prepared for localization!
  • Enhancement: Highlight the importance of changing the plugin directory name
  • Enhancement: Update the PHP version check (5.5 is no longer supported)
  • Enhancement: Provide caveats for the user ID = 1 check
  • Tested on WordPress 4.6

1.4.0

  • New test: Keep PHP up-to-date
  • New test: Don’t advertise the PHP version you are running
  • Enhancement: Remove deprecated WordPress function, force_ssl_login
  • Enhancement: Improve colour-coding on plugin check
  • Enhancement: Add stray file check for “error_log” files
  • Tested on WordPress 4.5

1.3.0

  • Enhancement: Add compatibility with WordPress Multisite installs
  • Tested on WordPress 4.3.1

1.2.2

  • Fix: Stray file test failing on PHP versions less than 5.3.6
  • Enhancement: Account for multilingual WordPress installs when testing for salts
  • Enhancement: Plugin version check only triggers warning if plugin is older than current
  • Tested on WordPress 4.1.1

1.2.1

  • Tested on WordPress 4.1
  • Fix: Test for user ID #1

1.2.0

  • New test: Prevent access to stray non-Wordpress files which could be useful to attackers
  • Remove test: Shellshock test (not an ongoing concern)
  • Enhancement: User enumeration test checks users with posts
  • Enhancement: Increase reliabilty if site is using a self-signed TLS certificate
  • Enhancement: Added common usernames (thanks to Viktor Szépe & Simon Fredsted)
  • Enhancement: Allowance for overriding requirements check

1.1.2

  • Fix: Remove PHP short tags
  • Enhancement: File Permissions check includes more “why” and less “how”
  • Enhancement: Shellshock check uses a more reliable method

1.1.1

  • Fix: Plugin “PHP Fatal error”

1.1.0

  • New test: Check for Shellshock bug
  • Enhancement: Add reference links to many tests for more information
  • Enhancement: Improve PHP display errors check
  • Enhancement: Improve TimThumb check

1.0.1

  • Fix: TimThumb test
  • Enhancement: Link to support forum and donation button
  • Enhancement: Run less code on non-plugin admin pages
  • Enhancement: Text tweaks

1.0.0

  • Initial release