Make WordPress Core


Ignore:
Timestamp:
05/01/2024 05:59:05 PM (11 months ago)
Author:
swissspidy
Message:

General: Remove any usage of wp_reset_vars().

The way wp_reset_vars() sets global variables based on $_POST and $_GET values makes code hard to understand and maintain. It also makes it easy to forget to sanitize input.

This change removes the few places where wp_reset_vars() is used in the admin to explicitly use $_REQUEST and sanitize any input.

Props swissspidy, audrasjb, davideferre, killua99, weijland, voldemortensen.
Fixes #38073.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/revision.php

    r56437 r58069  
    2222 * @global int    $to       Optional, required if revision missing. The revision to compare to.
    2323 */
    24 wp_reset_vars( array( 'revision', 'action', 'from', 'to' ) );
    2524
    26 $revision_id = absint( $revision );
     25$revision_id = ! empty( $_REQUEST['revision'] ) ? absint( $_REQUEST['revision'] ) : 0;
     26$action      = ! empty( $_REQUEST['action'] ) ? sanitize_text_field( $_REQUEST['action'] ) : '';
     27$from        = ! empty( $_REQUEST['from'] ) && is_numeric( $_REQUEST['from'] ) ? absint( $_REQUEST['from'] ) : null;
     28$to          = ! empty( $_REQUEST['to'] ) && is_numeric( $_REQUEST['to'] ) ? absint( $_REQUEST['to'] ) : null;
    2729
    28 $from = is_numeric( $from ) ? absint( $from ) : null;
    2930if ( ! $revision_id ) {
    30     $revision_id = absint( $to );
     31    $revision_id = $to;
    3132}
     33
    3234$redirect = 'edit.php';
    3335
Note: See TracChangeset for help on using the changeset viewer.