Make WordPress Core

Ticket #2800: wp_referer.diff

File wp_referer.diff, 2.0 KB (added by markjaquith, 20 years ago)

wp_referer 4

  • wp-includes/pluggable.php

     
    231231function check_admin_referer($action = -1) {
    232232        global $pagenow, $menu, $submenu, $parent_file, $submenu_file;;
    233233        $adminurl = strtolower(get_settings('siteurl')).'/wp-admin';
    234         $referer = strtolower($_SERVER['HTTP_REFERER']);
     234        $referer = wp_get_referer();
    235235        if ( !wp_verify_nonce($_REQUEST['_wpnonce'], $action) &&
    236236                !(-1 == $action && strstr($referer, $adminurl)) ) {
    237237                if ( $referer )
  • wp-includes/functions.php

     
    10491049
    10501050function wp_nonce_field($action = -1) {
    10511051        echo '<input type="hidden" name="_wpnonce" value="' . wp_create_nonce($action) . '" />';
     1052        wp_referer_field();
    10521053}
    10531054
     1055function wp_referer_field() {
     1056        $ref = ( false === wp_get_referer() ) ? $_SERVER['REQUEST_URI'] : wp_get_referer();
     1057        $ref = wp_specialchars(stripslashes($ref));
     1058        echo '<input type="hidden" name="_wp_'.$original.'http_referer" value="'. $ref . '" />';
     1059        if ( wp_get_original_referer() ) {
     1060                $original_ref = wp_specialchars(stripslashes(wp_get_original_referer()));
     1061                echo '<input type="hidden" name="_wp_original_http_referer" value="'. $original_ref . '" />';
     1062        }
     1063}
     1064
     1065function wp_original_referer_field() {
     1066        echo '<input type="hidden" name="_wp_original_http_referer" value="' . wp_specialchars(stripslashes($_SERVER['REQUEST_URI'])) . '" />';
     1067}
     1068
     1069function wp_get_referer() {
     1070        foreach ( array($_REQUEST['_wp_http_referer'], $_SERVER['HTTP_REFERER']) as $ref )
     1071                if ( !empty($ref) )
     1072                        return $ref;
     1073        return false;
     1074}
     1075
     1076function wp_get_original_referer() {
     1077        if ( !empty($_REQUEST['_wp_original_http_referer']) )
     1078                return $_REQUEST['_wp_original_http_referer'];
     1079        return false;
     1080}
     1081
    10541082function wp_mkdir_p($target) {
    10551083        // from php.net/mkdir user contributed notes
    10561084        if (file_exists($target)) {