Make WordPress Core

Ticket #55459: 55459.patch

File 55459.patch, 6.7 KB (added by viralsampat, 16 months ago)

I made small escaping changes and added my patch.

  • src/wp-login.php

    diff --git src/wp-login.php src/wp-login.php
    index 3dbfacfd2b..380443b06d 100644
    require __DIR__ . '/wp-load.php'; 
    1313
    1414// Redirect to HTTPS login if forced to use SSL.
    1515if ( force_ssl_admin() && ! is_ssl() ) {
    16         if ( str_starts_with( $_SERVER['REQUEST_URI'], 'http' ) ) {
     16        if ( ( isset( $_SERVER['REQUEST_URI'] ) && !empty( $_SERVER['REQUEST_URI'] ) )
     17        && str_starts_with( $_SERVER['REQUEST_URI'], 'http' ) ) {
    1718                wp_safe_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
    1819                exit;
    1920        } else {
    function login_header( $title = 'Log In', $message = '', $wp_error = null ) { 
    9091        <html <?php language_attributes(); ?>>
    9192        <head>
    9293        <meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
    93         <title><?php echo $login_title; ?></title>
     94        <title><?php echo esc_html( $login_title ); ?></title>
    9495        <?php
    9596
    9697        wp_enqueue_style( 'login' );
    function login_header( $title = 'Log In', $message = '', $wp_error = null ) { 
    206207
    207208        ?>
    208209        <div id="login">
    209                 <h1><a href="<?php echo esc_url( $login_header_url ); ?>"><?php echo $login_header_text; ?></a></h1>
     210                <h1><a href="<?php echo esc_url( $login_header_url ); ?>"><?php echo esc_html( $login_header_text ); ?></a></h1>
    210211        <?php
    211212        /**
    212213         * Filters the message to display above the login form.
    function login_header( $title = 'Log In', $message = '', $wp_error = null ) { 
    218219        $message = apply_filters( 'login_message', $message );
    219220
    220221        if ( ! empty( $message ) ) {
    221                 echo $message . "\n";
     222                echo esc_html( $message ) . "\n";
    222223        }
    223224
    224225        // In case a plugin uses $error rather than the $wp_errors object.
    function login_footer( $input_id = '' ) { 
    335336                                                <span class="screen-reader-text">
    336337                                                        <?php
    337338                                                        /* translators: Hidden accessibility text. */
    338                                                         _e( 'Language' );
     339                                                        esc_html_e( 'Language' );
    339340                                                        ?>
    340341                                                </span>
    341342                                        </label>
    function login_footer( $input_id = '' ) { 
    367368                                        <?php } ?>
    368369
    369370                                        <?php if ( isset( $_GET['redirect_to'] ) && '' !== $_GET['redirect_to'] ) { ?>
    370                                                 <input type="hidden" name="redirect_to" value="<?php echo sanitize_url( $_GET['redirect_to'] ); ?>" />
     371                                                <input type="hidden" name="redirect_to" value="<?php echo esc_attr( sanitize_url( $_GET['redirect_to'] ) ); ?>" />
    371372                                        <?php } ?>
    372373
    373374                                        <?php if ( isset( $_GET['action'] ) && '' !== $_GET['action'] ) { ?>
    $interim_login = isset( $_REQUEST['interim-login'] ); 
    538539 */
    539540$login_link_separator = apply_filters( 'login_link_separator', ' | ' );
    540541
     542// Assign filterable labels for form controls.
     543$defaults = array(
     544        'label_username' => __( 'Username or Email Address' ),
     545        'label_password' => __( 'Password' ),
     546        'label_remember' => __( 'Remember Me' ),
     547        'label_log_in'   => __( 'Log In' ),
     548);
     549$labels = apply_filters( 'login_form_defaults', $defaults );
     550
    541551switch ( $action ) {
    542552
    543553        case 'confirm_admin_email':
    switch ( $action ) { 
    841851
    842852                <form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
    843853                        <p>
    844                                 <label for="user_login"><?php _e( 'Username or Email Address' ); ?></label>
     854                                <label for="user_login"><?php echo esc_html( $labels['label_username'] ); ?></label>
    845855                                <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" autocomplete="username" required="required" />
    846856                        </p>
    847857                        <?php
    switch ( $action ) { 
    10881098                                <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( wp_unslash( $user_login ) ); ?>" size="20" autocapitalize="off" autocomplete="username" required="required" />
    10891099                        </p>
    10901100                        <p>
    1091                                 <label for="user_email"><?php _e( 'Email' ); ?></label>
     1101                                <label for="user_email"><?php _e( 'Email Address' ); ?></label>
    10921102                                <input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( wp_unslash( $user_email ) ); ?>" size="25" autocomplete="email" required="required" />
    10931103                        </p>
    10941104                        <?php
    switch ( $action ) { 
    14241434
    14251435                <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
    14261436                        <p>
    1427                                 <label for="user_login"><?php _e( 'Username or Email Address' ); ?></label>
    1428                                 <input type="text" name="log" id="user_login"<?php echo $aria_describedby; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" autocomplete="username" required="required" />
     1437                                <label for="user_login"><?php echo esc_html( $labels['label_username'] ); ?></label>
     1438                                <input type="text" name="log" id="user_login"<?php echo esc_attr( $aria_describedby ); ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" autocomplete="username" required="required" />
    14291439                        </p>
    14301440
    14311441                        <div class="user-pass-wrap">
    1432                                 <label for="user_pass"><?php _e( 'Password' ); ?></label>
     1442                                <label for="user_pass"><?php echo esc_html( $labels['label_password'] ); ?></label>
    14331443                                <div class="wp-pwd">
    1434                                         <input type="password" name="pwd" id="user_pass"<?php echo $aria_describedby; ?> class="input password-input" value="" size="20" autocomplete="current-password" spellcheck="false" required="required" />
     1444                                        <input type="password" name="pwd" id="user_pass"<?php echo esc_attr( $aria_describedby ); ?> class="input password-input" value="" size="20" autocomplete="current-password" spellcheck="false" required="required" />
    14351445                                        <button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Show password' ); ?>">
    14361446                                                <span class="dashicons dashicons-visibility" aria-hidden="true"></span>
    14371447                                        </button>
    switch ( $action ) { 
    14471457                        do_action( 'login_form' );
    14481458
    14491459                        ?>
    1450                         <p class="forgetmenot"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <label for="rememberme"><?php esc_html_e( 'Remember Me' ); ?></label></p>
     1460                        <p class="forgetmenot"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <label for="rememberme"><?php echo esc_html( $labels['label_remember'] ); ?></label></p>
    14511461                        <p class="submit">
    1452                                 <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Log In' ); ?>" />
     1462                                <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php echo esc_attr( $labels['label_log_in'] ); ?>" />
    14531463                                <?php
    14541464
    14551465                                if ( $interim_login ) {