Skip to content


Subversion checkout URL

You can clone with
Download ZIP
WordPress plugin to force users with executive capabilities to use something strong when updating their passwords.
PHP JavaScript
Branch: master

Merge pull request #24 from boogah/lostpassword-fix

Fixing issue with password reset workflow
latest commit 00455edc21
@boogah authored
Failed to load latest commit information.
languages Merge pull request #20 from akozoubsky/master
force-zxcvbn.min.js I18n fix
readme.txt Update readme.txt

Force Strong Passwords

Contributors: boogah, gyrus, simonwheatley, sparanoid, jpry, zyphonic
Tags: passwords, security, users, profile
Requires at least: 3.5
Tested up to: 4.3
Stable tag: 1.6.2
License URI:


The WordPress user profile editor includes a JavaScript-powered password strength indicator. However, there is nothing currently built into WordPress core to prevent users from entering weak passwords. Users changing their password to something weak is one of the most vulnerable aspects of a WordPress installation.

With Force Strong Passwords activated, strong passwords are enforced for users with publish_posts, upload_files & edit_published_posts capabilites. Should a user with these capabilities (normally an Author, Editor or Administrator) attempt to change their password, the strong password enforcement will be triggered.

To customize the list of capabilites Force Strong Passwords checks for, use the slt_fsp_caps_check filter.

IMPORTANT: As of WordPress 3.7, the password strength meter in core is based on the zxcvbn JavaScript library from Dropbox. Force Strong Passwords simply passes the results of the client-side zxcvbn check along for the server to decide if an error should be thrown. Be aware that a technically savvy user could disable this check in the browser.


slt_fsp_caps_check (should return an array)

Modifies the array of capabilities so that strong password enforcement will be triggered for any matching users.

Ex: To make sure users who can update WordPress core require strong passwords:

    add_filter( 'slt_fsp_caps_check', 'my_caps_check' );
    function my_caps_check( $caps ) {
        $caps[] = 'update_core';
        return $caps;

Ex: To trigger strong password enforcement for all users:

    if ( function_exists( 'slt_fsp_init' ) ) {
        //plugin is activated
        add_filter( 'slt_fsp_caps_check', '__return_empty_array' );

slt_fsp_error_message (should return a string)

Modifies the default error message.

slt_fsp_weak_roles (should return an array)

Modifies the array of roles that are considered "weak", and for which strong password enforcement is skipped when creating a new user. In this situation, the user object has yet to be created. This means that there are no capabilities to go by. Because of this, Force Strong Passwords has to use the role that has been set on the Add New User form.

The default array includes: subscriber and contributor.

Manual Installation

  1. Upload the force-strong-passwords directory into the /wp-content/plugins/ directory.
  2. Activate the plugin through the 'Plugins' menu in WordPress.



  • Fixed issue where password resets weren't working
  • Tested to WordPress 4.3.1


  • Fixing the i18n fix



  • Clean up documentation
  • Test for WordPress 4.2.2
  • Change donation link to Girl Develop It


  • Enforce strong passwords on password reset form (thanks Steve Bruner!)



  • Enforce on multisite network admin screens (thanks Damien Piquet!)


  • Updated Chinese Simplified Language translation (thanks sparanoid!)


  • zxcvbn password hints.
  • Now allows for non-Latin character set encoding when comparing zxcvbn meter result (thanks jpry!)


  • Added Serbo-Croatian translation (thanks Borisa Djuraskovic!)


  • Fixed so zxcvbn check respects localization (thanks lakrisgubben!)


  • Switched to JS-aided enforcement of new zxcvbn check in WP 3.7+
  • Added Japanese translation (thanks Fumito Mizuno!)


  • Added Chinese Simplified Language support (thanks sparanoid!)


  • Fixed bug that triggered enforcement on profile update even when no password is being set


  • Added slt_fsp_error_message filter to customize error message
  • Deprecated SLT_FSP_CAPS_CHECK constant; added slt_fsp_caps_check filter
  • Added slt_fsp_weak_roles filter


  • Used new validate_password_reset 3.5 hook to implement checking on reset password form (thanks simonwheatley!)
  • PHPDoc for callable functions
  • Improved function naming
  • Added control over capabilities that trigger strong password enforcement via SLT_FSP_CAPS_CHECK constant


  • First version
Something went wrong with that request. Please try again.