Plugin Directory

Changeset 1527904


Ignore:
Timestamp:
11/04/2016 07:33:59 AM (9 years ago)
Author:
froman118
Message:

Permission and security fixes

Location:
my-page-order/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • my-page-order/trunk/mypageorder.php

    r1315212 r1527904  
    44Plugin URI: http://www.geekyweekly.com/mypageorder
    55Description: My Page Order allows you to set the order of pages through a drag and drop interface. The default method of setting the order page by page is extremely clumsy, especially with a large number of pages.
    6 Version: 4.3.2
     6Version: 4.4.2
    77Author: Andrew Charlton
    88Author URI: http://www.geekyweekly.com
     
    4646$success = "";
    4747
     48current_user_can('edit_pages');
     49
    4850if (isset($_POST)) {
    49     if ( ! isset( $_POST['_nonce_my_page_order'] ) || ! wp_verify_nonce( $_POST['_nonce_my_page_order'], 'update' )  ) {
    50      // exit;
    51     }
    52    
     51
    5352    if (isset($_POST['btnSubPages'])) {
    54     $parentID = $_POST['pages'];
     53        $parentID = $_POST['pages'];
    5554    }
    5655    elseif (isset($_POST['hdnParentID'])) {
     
    5857    }
    5958
     59    if(!is_numeric($parentID))
     60        return '<div id="message" class="error fade"><p>'. __('An error occured.', 'mypageorder').'</p></div>';
     61       
    6062    if (isset($_POST['btnReturnParent'])) {
    61         $parentsParent = $wpdb->get_row( $wpdb->prepare("SELECT post_parent FROM $wpdb->posts WHERE ID = %d ", $_POST['hdnParentID'] ), ARRAY_N);
     63        $returnParentID = $_POST['hdnParentID'];
     64        if(!is_numeric($returnParentID))
     65            return '<div id="message" class="error fade"><p>'. __('An error occured.', 'mypageorder').'</p></div>';
     66       
     67        $parentsParent = $wpdb->get_row( $wpdb->prepare("SELECT post_parent FROM $wpdb->posts WHERE ID = %d", $returnParentID), ARRAY_N);
    6268        $parentID = $parentsParent[0];
    6369    }
    64 
    65     if (isset($_POST['btnOrderPages'])) {
     70    elseif (isset($_POST['btnOrderPages'])) {
     71        check_admin_referer('update_mypageorder_'.$parentID);
    6672        $success = mypageorder_updateOrder();
    6773    }
     
    7379<div class='wrap'>
    7480<form name="frmMyPageOrder" method="post" action="">
     81    <?php wp_nonce_field('update_mypageorder_'.$parentID); ?>
    7582    <h2><?php _e('My Page Order', 'mypageorder') ?></h2>
    7683    <?php echo $success; ?>
     
    110117    <input type="hidden" id="hdnMyPageOrder" name="hdnMyPageOrder" />
    111118    <input type="hidden" id="hdnParentID" name="hdnParentID" value="<?php echo $parentID; ?>" />
    112     <?php wp_nonce_field('update', '_nonce_my_page_order' ); ?>
     119   
    113120</form>
    114121</div>
     
    189196
    190197        $hdnMyPageOrder = $_POST['hdnMyPageOrder'];
     198           
    191199        $IDs = explode(",", $hdnMyPageOrder);
    192200        $result = count($IDs);
     
    195203        {
    196204            $str = str_replace("id_", "", $IDs[$i]);
     205           
     206            if(!is_numeric($str))
     207                return '<div id="message" class="error fade"><p>'. __('An error occured, order has not been saved.', 'mypageorder').'</p></div>';
     208           
    197209            $wpdb->query($wpdb->prepare("UPDATE $wpdb->posts SET menu_order = %d WHERE id = %d ", $i, $str));
    198210        }
     
    201213    }
    202214    else
    203         return '<div id="message" class="updated fade"><p>'. __('An error occured, order has not been saved.', 'mypageorder').'</p></div>';
     215        return '<div id="message" class="error fade"><p>'. __('An error occured, order has not been saved.', 'mypageorder').'</p></div>';
    204216}
    205217
  • my-page-order/trunk/readme.txt

    r1315214 r1527904  
    44Tags: page, order, sidebar, widget
    55Requires at least: 2.8
    6 Tested up to: 4.3.2
    7 Stable tag: 4.3.2
     6Tested up to: 4.4.2
     7Stable tag: 4.4.2
    88
    99My Page Order allows you to set the order of pages through a drag and drop interface.
     
    1818
    1919== Change Log ==
     20= 4.4.2 =
     21* Permission check and security improvement.
    2022= 4.3 =
    2123* PHP7 constructor update
Note: See TracChangeset for help on using the changeset viewer.