From 1cf97a3c1479f90a86450f19bd361c71f4b999e3 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Thu, 21 Oct 2021 18:17:20 +0000 Subject: [PATCH] Coding Standards: Improve escaping in `wp_login_form()`. * Split long concatenated lines using `sprintf()`. This aims to improve readability and avoid multiple `esc_attr()` calls for the same value. * Escape the form `name` and `id` attributes. Follow-up to [12696], [18444], [19033]. Props sabbirshouvo, mukesh27, audrasjb, henry.wright, SergeyBiryukov. Fixes #54279. git-svn-id: https://develop.svn.wordpress.org/trunk@51926 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/general-template.php | 63 +++++++++++++++++++--------- 1 file changed, 44 insertions(+), 19 deletions(-) diff --git a/src/wp-includes/general-template.php b/src/wp-includes/general-template.php index 41b0a174c0..4ab79e8ddc 100644 --- a/src/wp-includes/general-template.php +++ b/src/wp-includes/general-template.php @@ -576,25 +576,50 @@ function wp_login_form( $args = array() ) { */ $login_form_bottom = apply_filters( 'login_form_bottom', '', $args ); - $form = ' -
- ' . $login_form_top . ' - - - ' . $login_form_middle . ' - ' . ( $args['remember'] ? '' : '' ) . ' - - ' . $login_form_bottom . ' -
'; + $form = + sprintf( + '
', + esc_attr( $args['form_id'] ), + esc_url( site_url( 'wp-login.php', 'login_post' ) ) + ) . + $login_form_top . + sprintf( + '', + esc_attr( $args['id_username'] ), + esc_html( $args['label_username'] ), + esc_attr( $args['value_username'] ) + ) . + sprintf( + '', + esc_attr( $args['id_password'] ), + esc_html( $args['label_password'] ) + ) . + $login_form_middle . + ( $args['remember'] ? + sprintf( + '', + esc_attr( $args['id_remember'] ), + ( $args['value_remember'] ? ' checked="checked"' : '' ), + esc_html( $args['label_remember'] ) + ) : '' + ) . + sprintf( + '', + esc_attr( $args['id_submit'] ), + esc_attr( $args['label_log_in'] ), + esc_url( $args['redirect'] ) + ) . + $login_form_bottom . + '
'; if ( $args['echo'] ) { echo $form;