Plugin Directory

Changeset 3199740


Ignore:
Timestamp:
11/30/2024 04:57:49 AM (16 months ago)
Author:
blobfolio
Message:

release: 21.8.1

Location:
apocalypse-meow/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • apocalypse-meow/trunk/index.php

    r3197854 r3199740  
    44 *
    55 * @package Apocalypse Meow
    6  * @version 21.8.0
     6 * @version 21.8.1
    77 *
    88 * @wordpress-plugin
    99 * Plugin Name: Apocalypse Meow
    10  * Version: 21.8.0
     10 * Version: 21.8.1
    1111 * Plugin URI: https://wordpress.org/plugins/apocalypse-meow/
    1212 * Description: A simple, light-weight collection of tools to harden WordPress security and help mitigate common types of attacks.
     
    3333
    3434// Constants.
    35 define('MEOW_VERSION', '21.8.0');
     35define('MEOW_VERSION', '21.8.1');
    3636define('MEOW_MIN_PHP', '7.2.0');
    3737define('MEOW_PLUGIN_DIR', __DIR__ . '/');
  • apocalypse-meow/trunk/languages/apocalypse-meow-es_ES.po

    r3197854 r3199740  
    66"Project-Id-Version: Apocalypse Meow\n"
    77"Report-Msgid-Bugs-To: Translator Name <translations@example.com>\n"
    8 "POT-Creation-Date: 2024-11-26 21:48-0800\n"
     8"POT-Creation-Date: 2024-11-29 20:47-0800\n"
    99"PO-Revision-Date: \n"
    1010"Last-Translator: Josh Stoik <josh@blobfolio.com>\n"
     
    3636#: lib/blobfolio/wp/meow/cli/activity.php:136
    3737#: lib/blobfolio/wp/meow/cli/activity.php:447
    38 #: lib/blobfolio/wp/meow/cli/jail.php:121 lib/blobfolio/wp/meow/login.php:629
     38#: lib/blobfolio/wp/meow/cli/jail.php:121 lib/blobfolio/wp/meow/login.php:634
    3939msgid "IP"
    4040msgstr "IP"
     
    23542354msgstr "Y/m/d"
    23552355
    2356 #: lib/blobfolio/wp/meow/ajax.php:107 lib/blobfolio/wp/meow/login.php:359
    2357 #: lib/blobfolio/wp/meow/login.php:931 lib/blobfolio/wp/meow/login.php:991
     2356#: lib/blobfolio/wp/meow/ajax.php:107 lib/blobfolio/wp/meow/login.php:364
     2357#: lib/blobfolio/wp/meow/login.php:936 lib/blobfolio/wp/meow/login.php:996
    23582358msgid "The form had expired. Please try again."
    23592359msgstr "El formulario había caducado. Vuelve a intentarlo."
     
    26092609
    26102610#: lib/blobfolio/wp/meow/cli/activity.php:448
    2611 #: lib/blobfolio/wp/meow/login.php:628
     2611#: lib/blobfolio/wp/meow/login.php:633
    26122612msgid "Browser"
    26132613msgstr "Navegador"
     
    28372837msgstr "Ingresar negado"
    28382838
    2839 #: lib/blobfolio/wp/meow/login.php:268 lib/blobfolio/wp/meow/login.php:359
    2840 #: lib/blobfolio/wp/meow/login.php:823 lib/blobfolio/wp/meow/login.php:875
    2841 #: lib/blobfolio/wp/meow/login.php:940 lib/blobfolio/wp/meow/login.php:991
    2842 #: lib/blobfolio/wp/meow/login.php:1045
     2839#: lib/blobfolio/wp/meow/login.php:271 lib/blobfolio/wp/meow/login.php:364
     2840#: lib/blobfolio/wp/meow/login.php:828 lib/blobfolio/wp/meow/login.php:880
     2841#: lib/blobfolio/wp/meow/login.php:945 lib/blobfolio/wp/meow/login.php:996
     2842#: lib/blobfolio/wp/meow/login.php:1050
    28432843msgid "ERROR:"
    28442844msgstr "ERROR:"
    28452845
    2846 #: lib/blobfolio/wp/meow/login.php:268 lib/blobfolio/wp/meow/login.php:303
     2846#: lib/blobfolio/wp/meow/login.php:271 lib/blobfolio/wp/meow/login.php:308
    28472847#, fuzzy
    28482848#| msgid ""
     
    28542854"temporalmente prohibidos. Por favor, inténtelo de nuevo más tarde."
    28552855
    2856 #: lib/blobfolio/wp/meow/login.php:303
     2856#: lib/blobfolio/wp/meow/login.php:272
     2857#, fuzzy
     2858#| msgid "Login Jail"
     2859msgid "Login Unavailable"
     2860msgstr "La cárcel"
     2861
     2862#: lib/blobfolio/wp/meow/login.php:308
    28572863msgid "NOTE:"
    28582864msgstr ""
    28592865
    2860 #: lib/blobfolio/wp/meow/login.php:615
     2866#: lib/blobfolio/wp/meow/login.php:620
    28612867msgid "Hi"
    28622868msgstr "Hola"
    28632869
    2864 #: lib/blobfolio/wp/meow/login.php:618
     2870#: lib/blobfolio/wp/meow/login.php:623
    28652871#, php-format
    28662872msgid ""
     
    28712877"desde una nueva dirección de red."
    28722878
    2873 #: lib/blobfolio/wp/meow/login.php:623
     2879#: lib/blobfolio/wp/meow/login.php:628
    28742880#, php-format
    28752881msgid ""
     
    28822888"que no se han realizado cambios no autorizados en su cuenta."
    28832889
    2884 #: lib/blobfolio/wp/meow/login.php:627
     2890#: lib/blobfolio/wp/meow/login.php:632
    28852891msgid "Login Time"
    28862892msgstr "Hora de inicio de sesión"
    28872893
    2888 #: lib/blobfolio/wp/meow/login.php:631
     2894#: lib/blobfolio/wp/meow/login.php:636
    28892895msgid "This email has been sent to"
    28902896msgstr "Este correo electrónico se ha enviado a"
    28912897
    2892 #: lib/blobfolio/wp/meow/login.php:633
     2898#: lib/blobfolio/wp/meow/login.php:638
    28932899msgid "Regards,"
    28942900msgstr "Saludos,"
    28952901
    2896 #: lib/blobfolio/wp/meow/login.php:634
     2902#: lib/blobfolio/wp/meow/login.php:639
    28972903msgid "All at"
    28982904msgstr "Todos en"
    28992905
    2900 #: lib/blobfolio/wp/meow/login.php:641
     2906#: lib/blobfolio/wp/meow/login.php:646
    29012907msgid "Login Alert"
    29022908msgstr "Alerta de inicio de sesión"
    29032909
    2904 #: lib/blobfolio/wp/meow/login.php:762
     2910#: lib/blobfolio/wp/meow/login.php:767
    29052911msgid "Login attempts remaining"
    29062912msgstr "Intentos de inicio de sesión restantes"
    29072913
    2908 #: lib/blobfolio/wp/meow/login.php:823
     2914#: lib/blobfolio/wp/meow/login.php:828
    29092915msgid "Registration requires cookie support."
    29102916msgstr "El registro requiere soporte para cookies."
    29112917
    2912 #: lib/blobfolio/wp/meow/login.php:844 lib/blobfolio/wp/meow/login.php:845
     2918#: lib/blobfolio/wp/meow/login.php:849 lib/blobfolio/wp/meow/login.php:850
    29132919msgid "Please leave this field blank."
    29142920msgstr "Deje este campo en blanco."
    29152921
    2916 #: lib/blobfolio/wp/meow/login.php:875
     2922#: lib/blobfolio/wp/meow/login.php:880
    29172923msgid "The control field should be left blank."
    29182924msgstr "El campo de control debe dejarse en blanco."
    29192925
    2920 #: lib/blobfolio/wp/meow/login.php:900 lib/blobfolio/wp/meow/login.php:935
     2926#: lib/blobfolio/wp/meow/login.php:905 lib/blobfolio/wp/meow/login.php:940
    29212927msgid "Registration requires Javascript support."
    29222928msgstr "El registro requiere soporte para Javascript."
    29232929
    2924 #: lib/blobfolio/wp/meow/login.php:1045
     2930#: lib/blobfolio/wp/meow/login.php:1050
    29252931msgid "The form was submitted too quickly. Please wait a moment and try again."
    29262932msgstr ""
     
    29282934"intentarlo."
    29292935
    2930 #: lib/blobfolio/wp/meow/login.php:1065
     2936#: lib/blobfolio/wp/meow/login.php:1070
    29312937msgid ""
    29322938"For security reasons, registrations from your network are temporarily "
     
    29362942"prohibidos. Por favor, inténtelo de nuevo más tarde."
    29372943
    2938 #: lib/blobfolio/wp/meow/login.php:1066
     2944#: lib/blobfolio/wp/meow/login.php:1071
    29392945msgid "Registration Denied"
    29402946msgstr "Registro denegado"
    29412947
    2942 #: lib/blobfolio/wp/meow/login.php:1151
     2948#: lib/blobfolio/wp/meow/login.php:1156
    29432949msgid "Registration attempts remaining"
    29442950msgstr "Intentos de registro restantes"
    29452951
    2946 #: lib/blobfolio/wp/meow/login.php:1481
     2952#: lib/blobfolio/wp/meow/login.php:1486
    29472953#, php-format
    29482954msgid ""
     
    29532959"favor, intente otra cosa!"
    29542960
    2955 #: lib/blobfolio/wp/meow/login.php:1497
     2961#: lib/blobfolio/wp/meow/login.php:1502
    29562962msgid "The password must contain at least one letter."
    29572963msgstr "La contraseña debe contener al menos una letra."
    29582964
    2959 #: lib/blobfolio/wp/meow/login.php:1503
     2965#: lib/blobfolio/wp/meow/login.php:1508
    29602966msgid ""
    29612967"The password must contain at least one uppercase letter and one lowercase "
     
    29642970"La contraseña debe contener al menos una letra mayúscula y una minúscula."
    29652971
    2966 #: lib/blobfolio/wp/meow/login.php:1508
     2972#: lib/blobfolio/wp/meow/login.php:1513
    29672973msgid "The password must contain at least one number."
    29682974msgstr "La contraseña debe contener al menos un número."
    29692975
    2970 #: lib/blobfolio/wp/meow/login.php:1513
     2976#: lib/blobfolio/wp/meow/login.php:1518
    29712977msgid "The password must contain at least one non-alphanumeric symbol."
    29722978msgstr "La contraseña debe contener al menos un símbolo no alfanumérico."
    29732979
    2974 #: lib/blobfolio/wp/meow/login.php:1520
     2980#: lib/blobfolio/wp/meow/login.php:1525
    29752981#, php-format
    29762982msgid "The password must be at least %d characters long."
    29772983msgstr "La contraseña debe tener al menos %d caracteres."
    29782984
    2979 #: lib/blobfolio/wp/meow/login.php:1534
     2985#: lib/blobfolio/wp/meow/login.php:1539
    29802986#, php-format
    29812987msgid "The password must consist of at least %d different characters."
  • apocalypse-meow/trunk/languages/apocalypse-meow.pot

    r3197854 r3199740  
    1212"com>\n"
    1313"POT-Creation-Date: "
    14 "2024-11-26 21:48-0800\n"
     14"2024-11-29 20:46-0800\n"
    1515"PO-Revision-Date: \n"
    1616"Last-Translator: Your "
     
    7575#: lib/blobfolio/wp/meow/cli/activity.php:447
    7676#: lib/blobfolio/wp/meow/cli/jail.php:121
    77 #: lib/blobfolio/wp/meow/login.php:629
     77#: lib/blobfolio/wp/meow/login.php:634
    7878msgid "IP"
    7979msgstr ""
     
    29132913
    29142914#: lib/blobfolio/wp/meow/ajax.php:107
    2915 #: lib/blobfolio/wp/meow/login.php:359
    2916 #: lib/blobfolio/wp/meow/login.php:931
    2917 #: lib/blobfolio/wp/meow/login.php:991
     2915#: lib/blobfolio/wp/meow/login.php:364
     2916#: lib/blobfolio/wp/meow/login.php:936
     2917#: lib/blobfolio/wp/meow/login.php:996
    29182918msgid ""
    29192919"The form had expired. "
     
    32333233
    32343234#: lib/blobfolio/wp/meow/cli/activity.php:448
    3235 #: lib/blobfolio/wp/meow/login.php:628
     3235#: lib/blobfolio/wp/meow/login.php:633
    32363236msgid "Browser"
    32373237msgstr ""
     
    35353535msgstr ""
    35363536
    3537 #: lib/blobfolio/wp/meow/login.php:268
    3538 #: lib/blobfolio/wp/meow/login.php:359
    3539 #: lib/blobfolio/wp/meow/login.php:823
    3540 #: lib/blobfolio/wp/meow/login.php:875
    3541 #: lib/blobfolio/wp/meow/login.php:940
    3542 #: lib/blobfolio/wp/meow/login.php:991
    3543 #: lib/blobfolio/wp/meow/login.php:1045
     3537#: lib/blobfolio/wp/meow/login.php:271
     3538#: lib/blobfolio/wp/meow/login.php:364
     3539#: lib/blobfolio/wp/meow/login.php:828
     3540#: lib/blobfolio/wp/meow/login.php:880
     3541#: lib/blobfolio/wp/meow/login.php:945
     3542#: lib/blobfolio/wp/meow/login.php:996
     3543#: lib/blobfolio/wp/meow/login.php:1050
    35443544msgid "ERROR:"
    35453545msgstr ""
    35463546
    3547 #: lib/blobfolio/wp/meow/login.php:268
    3548 #: lib/blobfolio/wp/meow/login.php:303
     3547#: lib/blobfolio/wp/meow/login.php:271
     3548#: lib/blobfolio/wp/meow/login.php:308
    35493549msgid ""
    35503550"New logins are "
     
    35543554msgstr ""
    35553555
    3556 #: lib/blobfolio/wp/meow/login.php:303
     3556#: lib/blobfolio/wp/meow/login.php:272
     3557msgid "Login Unavailable"
     3558msgstr ""
     3559
     3560#: lib/blobfolio/wp/meow/login.php:308
    35573561msgid "NOTE:"
    35583562msgstr ""
    35593563
    3560 #: lib/blobfolio/wp/meow/login.php:615
     3564#: lib/blobfolio/wp/meow/login.php:620
    35613565msgid "Hi"
    35623566msgstr ""
    35633567
    3564 #: lib/blobfolio/wp/meow/login.php:618
     3568#: lib/blobfolio/wp/meow/login.php:623
    35653569#, php-format
    35663570msgid ""
     
    35723576msgstr ""
    35733577
    3574 #: lib/blobfolio/wp/meow/login.php:623
     3578#: lib/blobfolio/wp/meow/login.php:628
    35753579#, php-format
    35763580msgid ""
     
    35853589msgstr ""
    35863590
    3587 #: lib/blobfolio/wp/meow/login.php:627
     3591#: lib/blobfolio/wp/meow/login.php:632
    35883592msgid "Login Time"
    35893593msgstr ""
    35903594
    3591 #: lib/blobfolio/wp/meow/login.php:631
     3595#: lib/blobfolio/wp/meow/login.php:636
    35923596msgid ""
    35933597"This email has been sent "
     
    35953599msgstr ""
    35963600
    3597 #: lib/blobfolio/wp/meow/login.php:633
     3601#: lib/blobfolio/wp/meow/login.php:638
    35983602msgid "Regards,"
    35993603msgstr ""
    36003604
    3601 #: lib/blobfolio/wp/meow/login.php:634
     3605#: lib/blobfolio/wp/meow/login.php:639
    36023606msgid "All at"
    36033607msgstr ""
    36043608
    3605 #: lib/blobfolio/wp/meow/login.php:641
     3609#: lib/blobfolio/wp/meow/login.php:646
    36063610msgid "Login Alert"
    36073611msgstr ""
    36083612
    3609 #: lib/blobfolio/wp/meow/login.php:762
     3613#: lib/blobfolio/wp/meow/login.php:767
    36103614msgid ""
    36113615"Login attempts remaining"
    36123616msgstr ""
    36133617
    3614 #: lib/blobfolio/wp/meow/login.php:823
     3618#: lib/blobfolio/wp/meow/login.php:828
    36153619msgid ""
    36163620"Registration requires "
     
    36183622msgstr ""
    36193623
    3620 #: lib/blobfolio/wp/meow/login.php:844
    3621 #: lib/blobfolio/wp/meow/login.php:845
     3624#: lib/blobfolio/wp/meow/login.php:849
     3625#: lib/blobfolio/wp/meow/login.php:850
    36223626msgid ""
    36233627"Please leave this field "
     
    36253629msgstr ""
    36263630
    3627 #: lib/blobfolio/wp/meow/login.php:875
     3631#: lib/blobfolio/wp/meow/login.php:880
    36283632msgid ""
    36293633"The control field should "
     
    36313635msgstr ""
    36323636
    3633 #: lib/blobfolio/wp/meow/login.php:900
    3634 #: lib/blobfolio/wp/meow/login.php:935
     3637#: lib/blobfolio/wp/meow/login.php:905
     3638#: lib/blobfolio/wp/meow/login.php:940
    36353639msgid ""
    36363640"Registration requires "
     
    36383642msgstr ""
    36393643
    3640 #: lib/blobfolio/wp/meow/login.php:1045
     3644#: lib/blobfolio/wp/meow/login.php:1050
    36413645msgid ""
    36423646"The form was submitted "
     
    36453649msgstr ""
    36463650
    3647 #: lib/blobfolio/wp/meow/login.php:1065
     3651#: lib/blobfolio/wp/meow/login.php:1070
    36483652msgid ""
    36493653"For security reasons, "
     
    36543658msgstr ""
    36553659
    3656 #: lib/blobfolio/wp/meow/login.php:1066
     3660#: lib/blobfolio/wp/meow/login.php:1071
    36573661msgid "Registration Denied"
    36583662msgstr ""
    36593663
    3660 #: lib/blobfolio/wp/meow/login.php:1151
     3664#: lib/blobfolio/wp/meow/login.php:1156
    36613665msgid ""
    36623666"Registration attempts "
     
    36643668msgstr ""
    36653669
    3666 #: lib/blobfolio/wp/meow/login.php:1481
     3670#: lib/blobfolio/wp/meow/login.php:1486
    36673671#, php-format
    36683672msgid ""
     
    36743678msgstr ""
    36753679
    3676 #: lib/blobfolio/wp/meow/login.php:1497
     3680#: lib/blobfolio/wp/meow/login.php:1502
    36773681msgid ""
    36783682"The password must "
     
    36813685msgstr ""
    36823686
    3683 #: lib/blobfolio/wp/meow/login.php:1503
     3687#: lib/blobfolio/wp/meow/login.php:1508
    36843688msgid ""
    36853689"The password must "
     
    36893693msgstr ""
    36903694
    3691 #: lib/blobfolio/wp/meow/login.php:1508
     3695#: lib/blobfolio/wp/meow/login.php:1513
    36923696msgid ""
    36933697"The password must "
     
    36963700msgstr ""
    36973701
    3698 #: lib/blobfolio/wp/meow/login.php:1513
     3702#: lib/blobfolio/wp/meow/login.php:1518
    36993703msgid ""
    37003704"The password must "
     
    37033707msgstr ""
    37043708
    3705 #: lib/blobfolio/wp/meow/login.php:1520
     3709#: lib/blobfolio/wp/meow/login.php:1525
    37063710#, php-format
    37073711msgid ""
     
    37103714msgstr ""
    37113715
    3712 #: lib/blobfolio/wp/meow/login.php:1534
     3716#: lib/blobfolio/wp/meow/login.php:1539
    37133717#, php-format
    37143718msgid ""
  • apocalypse-meow/trunk/lib/blobfolio/wp/meow/login.php

    r3197854 r3199740  
    9898        if ($settings['login']['lockdown_limit']) {
    9999            \add_action('wp_login_errors', array(static::class, 'login_lockdown_message'), 100, 1);
    100             \add_action('authenticate', array(static::class, 'login_lockdown'), 50, 1);
     100            \add_action('authenticate', array(static::class, 'login_lockdown'), 5, 2);
    101101        }
    102102
     
    259259     * Login Lockdown.
    260260     *
    261      * @param WP_User $user User object.
     261     * If the lockdown applies, log the request as a de-facto failure and exit
     262     * with a 403 error.
     263     *
     264     * @param WP_User $user User object or null.
     265     * @param string $username Username (raw).
    262266     * @return mixed User or error.
    263267     */
    264     public static function login_lockdown($user) {
     268    public static function login_lockdown($user=null, $username='') {
    265269        if (('POST' === \getenv('REQUEST_METHOD')) && static::is_login_lockdown()) {
    266             return new WP_Error(
    267                 'meow_login_lockdown',
     270            // Log it as a failure.
     271            static::login_log_fail($username);
     272
     273            // Then kill the process good and dead!
     274            \wp_die(
    268275                '<strong>' . \__('ERROR:', 'apocalypse-meow') . '</strong> ' . \__('New logins are temporarily disabled. Please try again in a few minutes.', 'apocalypse-meow'),
     276                \__('Login Unavailable', 'apocalypse-meow'),
     277                403,
    269278            );
    270279        }
     
    282291    public static function login_lockdown_message($errors) {
    283292        if (
    284             // Post attempts will get their own error.
     293            // Post attempts are handled separately.
    285294            ('POST' !== \getenv('REQUEST_METHOD')) &&
    286295            // Ignore WP's random non-login bits that use this hook.
  • apocalypse-meow/trunk/readme.txt

    r3197854 r3199740  
    127127== Changelog ==
    128128
     129= 21.8.1 =
     130* [Misc] Exit with 403 for lockdown POST requests instead of returning error.
     131
    129132= 21.8.0 =
    130133* [New] Login Lockdown option to help mitigate distributed brute-force attacks.
     
    140143* [Docs] Update notes for the `referrer-policy` setting.
    141144
    142 = 21.7.2 =
    143 * [Fix] Improve PHP 8 compatibility.
     145== Upgrade Notice ==
    144146
    145 == Upgrade Notice ==
     147= 21.8.1 =
     148This release tweaks the lockdown behavior to exit POST requests with a 403 status instead of returning an error.
    146149
    147150= 21.8.0 =
     
    156159= 21.7.3 =
    157160This release provides updated documentation for the `referrer-policy` setting.
    158 
    159 = 21.7.2 =
    160 This release improves compatibility with PHP 8.
Note: See TracChangeset for help on using the changeset viewer.