Plugin Directory

Changeset 2701888


Ignore:
Timestamp:
03/30/2022 12:32:46 PM (4 years ago)
Author:
aihimel
Message:

Security updated.

Location:
file-manager
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • file-manager/tags/5.2.3/BootStart/BootStart.php

    r2701235 r2701888  
    229229
    230230        // elFinder Scripts depends on jQuery UI core, selectable, draggable, droppable, resizable, dialog and slider.
    231         wp_register_script( 'fmp-elfinder-script', $this->url('elFinder/js/elfinder.full.js'), array('jquery', 'jquery-ui-core', 'jquery-ui-selectable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-resizable', 'jquery-ui-dialog', 'jquery-ui-slider', 'jquery-ui-tabs') );
     231        $elfinder_script = $this->is_minified_file_load('fmp-elfinder-script');
     232        wp_register_script( $elfinder_script['handle'] , $this->url('elFinder/js/elfinder'.$elfinder_script['file_type'].'js'), array('jquery', 'jquery-ui-core', 'jquery-ui-selectable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-resizable', 'jquery-ui-dialog', 'jquery-ui-slider', 'jquery-ui-tabs') );
     233        $editor_script = $this->is_minified_file_load('fmp-elfinder-editor-script');
     234        wp_register_script( $editor_script['handle'], $this->url('elFinder/js/extras/editors.default'.$editor_script['file_type'].'js'), array($elfinder_script['handle']) );
     235
    232236        $fm_nonce = wp_create_nonce( 'fm_nonce' );
    233 
    234         wp_localize_script('fmp-elfinder-script', "fm", array(
     237        wp_localize_script($elfinder_script['handle'], "fm", array(
    235238            'ajax_url'      => admin_url( 'admin-ajax.php' ),
    236239            'nonce'         => $fm_nonce,
     
    240243            'elfinder'      => plugin_dir_url(__DIR__)."elFinder/"
    241244        ));
    242 
    243 
    244 
    245         // wp_register_script( 'fmp-elfinder-editor-script', $this->url('elFinder/js/extras/editors.default.js'), array('fmp-elfinder-script') );
    246 
     245    }
     246
     247    /**
     248     * Load minified files if WP_DEBUG || WP_DEBUG_LOG true
     249     */
     250    public function is_minified_file_load($handle_name){
     251
     252        if(WP_DEBUG) {
     253            return [
     254                'handle' => $handle_name,
     255                'file_type' => ('fmp-elfinder-script' === $handle_name ) ? '.full.':  '.'
     256            ];
     257        }
     258
     259        return [
     260            'handle' => $handle_name.'-min',
     261            'file_type' => '.min.'
     262        ];
     263       
    247264    }
    248265
  • file-manager/tags/5.2.3/file-manager.php

    r2701235 r2701888  
    3939$upload_dir = wp_upload_dir();
    4040
     41// Upload dir path
     42if( !defined( 'FM_UPLOAD_DIR_PATH' ) ) define("FM_UPLOAD_DIR_PATH", $upload_dir['path']);
     43
     44// Upload dir url
     45if( !defined( 'FM_UPLOAD_DIR_URL' ) ) define("FM_UPLOAD_DIR_URL", $upload_dir['url']);
     46
     47// Media basedir
     48if( !defined( 'FM_MEDIA_BASE_DIR_PATH' ) ) define("FM_MEDIA_BASE_DIR_PATH", $upload_dir['basedir']);
     49
     50// Media baseurl
     51if( !defined( 'FM_MEDIA_BASE_DIR_URL' ) ) define("FM_MEDIA_BASE_DIR_URL", $upload_dir['baseurl']);
     52
     53// File manager upload dir basedir
    4154defined( 'FM_UPLOAD_BASE_DIR' ) || define( 'FM_UPLOAD_BASE_DIR', $upload_dir['basedir'] . DS . 'file-manager' . DS );
     55
     56// File manager upload dir baseurl
     57defined( 'FM_UPLOAD_BASE_URL' ) || define( 'FM_UPLOAD_BASE_URL', $upload_dir['baseurl'] . DS . 'file-manager' . DS );
    4258
    4359// Including elFinder class
     
    128144        // Admin Notices
    129145        add_action('admin_notices', array(&$this, 'admin_notice'));
     146
     147
    130148    }
    131149
     
    141159        // Allowed mime types
    142160        $mime = new FMMIME( plugin_dir_path(__FILE__) . 'elFinder/php/mime.types' );
    143         $wp_upload_dir = wp_upload_dir();
    144161       
    145162        $opts = array(
     
    164181                    'disabled'      => array(),    // List of disabled operations
    165182                    'dispInlineRegex' => '^(?:image|application/(?:vnd\.)?(?:ms(?:-office|word|-excel|-powerpoint)|openxmlformats-officedocument)|text/plain$)',
     183                    'attributes' => array(
     184                        array(// hide specipic folder.
     185                            'pattern' => '!^/img!',
     186                            'hidden' => false,
     187                            'read'   => true,
     188                            'write'  => true,
     189                            'locked' => false,
     190                        ),
     191                        array( // hide specipic folder.
     192                            'pattern' => '!^/inc!',
     193                            'hidden' => false,
     194                            'read'   => true,
     195                            'write'  => true,
     196                            'locked' => false,
     197                        ),
     198                        // array( // hide specipic file type.
     199                        //  'pattern' => '!\.env!',
     200                        //  'hidden' => false,
     201                        //  'read'   => true,
     202                        //  'write'  => true,
     203                        //  'locked' => false,
     204                        // )
     205                    )
    166206                ),
    167207                array(
    168208                    'alias'        => 'Media',
    169209                    'driver'        => 'LocalFileSystem',           // driver for accessing file system (REQUIRED)
    170                     'path'          => $wp_upload_dir['path'],                     // path to files (REQUIRED)
    171                     'URL'           => $wp_upload_dir['url'],                  // URL to files (REQUIRED)
     210                    'path'          => FM_MEDIA_BASE_DIR_PATH,                     // path to files (REQUIRED)
     211                    'URL'           => FM_MEDIA_BASE_DIR_URL,                  // URL to files (REQUIRED)
    172212                    'uploadDeny'    => array(),                // All Mimetypes not allowed to upload
    173213                    'uploadAllow'   => $mime->get_types(), // All MIME types is allowed
     
    178218            )
    179219        );
     220
    180221
    181222        /**
     
    194235    public function security_check(){
    195236        // Checks if the current user have enough authorization to operate.
    196         if( ! wp_verify_nonce( $_POST['file_manager_security_token'] ,'file-manager-security-token') || !current_user_can( 'manage_options' ) ) wp_die();
    197         check_ajax_referer('file-manager-security-token', 'file_manager_security_token');
     237        if( ! wp_verify_nonce( $_POST['file_manager_security_token'] ,'fm_nonce') || !current_user_can( 'manage_options' ) ) wp_die();
     238        check_ajax_referer('fm_nonce', 'file_manager_security_token');
    198239    }
    199240
     
    254295$FileManager = new FM('File Manager');
    255296
     297
     298
    256299if(!function_exists('pr')):
    257300function pr($obj){
  • file-manager/tags/5.2.3/inc/class.review.php

    r2701235 r2701888  
    2020    function __construct(){
    2121        // Checking the review status
    22         if(isset($_GET['fm-review-status']))
    23             $_GET['fm-review-status'] = sanitize_text_field($_GET['fm-review-status']);
     22        $review_status = isset($_GET['fm-review-status']) ? sanitize_text_field($_GET['fm-review-status']): '';
     23        if( in_array( $review_status, $this->status ) ){
    2424
    25         if(!empty($_GET['fm-review-status']) && in_array($_GET['fm-review-status'], $this->status)){
    26             $review_status = $_GET['fm-review-status'];
    2725            switch($review_status){
    2826                case 'review-successfull':
  • file-manager/tags/5.2.3/views/admin/files.php

    r2701235 r2701888  
    3535
    3636
     37
    3738// Command options modifier
    3839$commandOptions = [];
     
    5152wp_enqueue_style( 'fmp-elfinder-theme-css' );
    5253
    53 wp_enqueue_script('fmp-elfinder-script');
    54 wp_enqueue_script('fmp-elfinder-editor-script');
     54
     55wp_enqueue_script($FileManager->is_minified_file_load('fmp-elfinder-script')['handle']);
     56wp_enqueue_script( $FileManager->is_minified_file_load('fmp-elfinder-editor-script')['handle']);
    5557
    5658// Testing
     
    6870<script>
    6971
    70 PLUGINS_URL = '<?php echo plugins_url();?>';
     72PLUGINS_URL = '<?php echo esc_js(plugins_url());?>';
    7173
    7274jQuery(document).ready(function(){
    73 
     75  console.log(ajaxurl);
    7476    jQuery('#file-manager').elfinder({
    7577        url: ajaxurl,
     
    7981            ]
    8082        },
    81         customData:{action: 'connector', file_manager_security_token: '<?php echo wp_create_nonce( "file-manager-security-token" ); ?>'},
     83        customData:{action: 'connector', file_manager_security_token: fm.nonce},
    8284        lang: '<?php if( isset($language_code) ) echo esc_js($language_code); ?>',
    8385        requestType: 'post',
  • file-manager/tags/5.2.3/views/admin/footer.php

    r2701235 r2701888  
    1616        <li><a href='https://wpjos.com/contacts/'><?php _e("Contacts", 'file-manager'); ?></a></li>
    1717        <li><a href='https://wpjos.com/documentations/'><?php _e("Docs", 'file-manager'); ?></a></li>
    18         <li><a href='<?= $FileManager->feedback_page; ?>'><?php _e("Review", 'file-manager'); ?></a></li>
    19         <li><a href='<?= $FileManager->support_page; ?>'><?php _e("Help & Support", 'file-manager'); ?></a></li>
    20         <li><a href='<?= $FileManager->site; ?>'>WPJos</a></li>
     18        <li><a href='<?php esc_url($FileManager->feedback_page); ?>'><?php _e("Review", 'file-manager'); ?></a></li>
     19        <li><a href='<?php esc_url($FileManager->support_page); ?>'><?php _e("Help & Support", 'file-manager'); ?></a></li>
     20        <li><a href='<?php esc_url($FileManager->site); ?>'>WPJos</a></li>
    2121    </ul>
    2222
  • file-manager/tags/5.2.3/views/admin/header.php

    r2701235 r2701888  
    1717
    1818    <ul class='top-right-menu'>
    19         <li><a href='<?php echo $FileManager->support_page; ?>'><?php _e("Need help?", 'file-manager'); ?></a></li>
    20         <li><a href='<?php echo $FileManager->feedback_page; ?>'><?php _e("Leave us a feedback", 'file-manager'); ?></a></li>
    21         <li class='fm-marketing'><a href='<?php echo $FileManager->giribaz_landing_page; ?>'><?php _e("Extend", 'file-manager'); ?></a></li>
     19        <li><a href='<?php echo esc_url($FileManager->support_page); ?>'><?php _e("Need help?", 'file-manager'); ?></a></li>
     20        <li><a href='<?php echo esc_url($FileManager->feedback_page); ?>'><?php _e("Leave us a feedback", 'file-manager'); ?></a></li>
     21        <li class='fm-marketing'><a href='<?php echo esc_url($FileManager->giribaz_landing_page); ?>'><?php _e("Extend", 'file-manager'); ?></a></li>
    2222    </ul>
    2323
  • file-manager/tags/5.2.3/views/admin/settings.php

    r2701235 r2701888  
    2323
    2424$admin_page_url = admin_url()."admin.php?page={$FileManager->prefix}";
    25 
    26 if( !isset($_GET['sub_page']) || empty($_GET['sub_page']) ) $_GET['sub_page'] = 'files';
    27 
    28 $_GET['sub_page'] = sanitize_text_field($_GET['sub_page']);
    2925
    3026// Enqueing admin assets
  • file-manager/tags/5.2.3/views/admin/utility.php

    r2701235 r2701888  
    5151    <tr>
    5252        <td><?php _e("Browser and OS", 'file-manager'); ?></td>
    53         <td><?php echo $_SERVER['HTTP_USER_AGENT']; ?></td>
     53        <td><?php echo esc_html($_SERVER['HTTP_USER_AGENT']); ?></td>
    5454    </tr>
    5555   
  • file-manager/trunk/BootStart/BootStart.php

    r2700615 r2701888  
    229229
    230230        // elFinder Scripts depends on jQuery UI core, selectable, draggable, droppable, resizable, dialog and slider.
    231         wp_register_script( 'fmp-elfinder-script', $this->url('elFinder/js/elfinder.full.js'), array('jquery', 'jquery-ui-core', 'jquery-ui-selectable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-resizable', 'jquery-ui-dialog', 'jquery-ui-slider', 'jquery-ui-tabs') );
     231        $elfinder_script = $this->is_minified_file_load('fmp-elfinder-script');
     232        wp_register_script( $elfinder_script['handle'] , $this->url('elFinder/js/elfinder'.$elfinder_script['file_type'].'js'), array('jquery', 'jquery-ui-core', 'jquery-ui-selectable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-resizable', 'jquery-ui-dialog', 'jquery-ui-slider', 'jquery-ui-tabs') );
     233        $editor_script = $this->is_minified_file_load('fmp-elfinder-editor-script');
     234        wp_register_script( $editor_script['handle'], $this->url('elFinder/js/extras/editors.default'.$editor_script['file_type'].'js'), array($elfinder_script['handle']) );
     235
    232236        $fm_nonce = wp_create_nonce( 'fm_nonce' );
    233 
    234         wp_localize_script('fmp-elfinder-script', "fm", array(
     237        wp_localize_script($elfinder_script['handle'], "fm", array(
    235238            'ajax_url'      => admin_url( 'admin-ajax.php' ),
    236239            'nonce'         => $fm_nonce,
     
    240243            'elfinder'      => plugin_dir_url(__DIR__)."elFinder/"
    241244        ));
    242 
    243 
    244 
    245         // wp_register_script( 'fmp-elfinder-editor-script', $this->url('elFinder/js/extras/editors.default.js'), array('fmp-elfinder-script') );
    246 
     245    }
     246
     247    /**
     248     * Load minified files if WP_DEBUG || WP_DEBUG_LOG true
     249     */
     250    public function is_minified_file_load($handle_name){
     251
     252        if(WP_DEBUG) {
     253            return [
     254                'handle' => $handle_name,
     255                'file_type' => ('fmp-elfinder-script' === $handle_name ) ? '.full.':  '.'
     256            ];
     257        }
     258
     259        return [
     260            'handle' => $handle_name.'-min',
     261            'file_type' => '.min.'
     262        ];
     263       
    247264    }
    248265
  • file-manager/trunk/file-manager.php

    r2701235 r2701888  
    3939$upload_dir = wp_upload_dir();
    4040
     41// Upload dir path
     42if( !defined( 'FM_UPLOAD_DIR_PATH' ) ) define("FM_UPLOAD_DIR_PATH", $upload_dir['path']);
     43
     44// Upload dir url
     45if( !defined( 'FM_UPLOAD_DIR_URL' ) ) define("FM_UPLOAD_DIR_URL", $upload_dir['url']);
     46
     47// Media basedir
     48if( !defined( 'FM_MEDIA_BASE_DIR_PATH' ) ) define("FM_MEDIA_BASE_DIR_PATH", $upload_dir['basedir']);
     49
     50// Media baseurl
     51if( !defined( 'FM_MEDIA_BASE_DIR_URL' ) ) define("FM_MEDIA_BASE_DIR_URL", $upload_dir['baseurl']);
     52
     53// File manager upload dir basedir
    4154defined( 'FM_UPLOAD_BASE_DIR' ) || define( 'FM_UPLOAD_BASE_DIR', $upload_dir['basedir'] . DS . 'file-manager' . DS );
     55
     56// File manager upload dir baseurl
     57defined( 'FM_UPLOAD_BASE_URL' ) || define( 'FM_UPLOAD_BASE_URL', $upload_dir['baseurl'] . DS . 'file-manager' . DS );
    4258
    4359// Including elFinder class
     
    128144        // Admin Notices
    129145        add_action('admin_notices', array(&$this, 'admin_notice'));
     146
     147
    130148    }
    131149
     
    141159        // Allowed mime types
    142160        $mime = new FMMIME( plugin_dir_path(__FILE__) . 'elFinder/php/mime.types' );
    143         $wp_upload_dir = wp_upload_dir();
    144161       
    145162        $opts = array(
     
    164181                    'disabled'      => array(),    // List of disabled operations
    165182                    'dispInlineRegex' => '^(?:image|application/(?:vnd\.)?(?:ms(?:-office|word|-excel|-powerpoint)|openxmlformats-officedocument)|text/plain$)',
     183                    'attributes' => array(
     184                        array(// hide specipic folder.
     185                            'pattern' => '!^/img!',
     186                            'hidden' => false,
     187                            'read'   => true,
     188                            'write'  => true,
     189                            'locked' => false,
     190                        ),
     191                        array( // hide specipic folder.
     192                            'pattern' => '!^/inc!',
     193                            'hidden' => false,
     194                            'read'   => true,
     195                            'write'  => true,
     196                            'locked' => false,
     197                        ),
     198                        // array( // hide specipic file type.
     199                        //  'pattern' => '!\.env!',
     200                        //  'hidden' => false,
     201                        //  'read'   => true,
     202                        //  'write'  => true,
     203                        //  'locked' => false,
     204                        // )
     205                    )
    166206                ),
    167207                array(
    168208                    'alias'        => 'Media',
    169209                    'driver'        => 'LocalFileSystem',           // driver for accessing file system (REQUIRED)
    170                     'path'          => $wp_upload_dir['path'],                     // path to files (REQUIRED)
    171                     'URL'           => $wp_upload_dir['url'],                  // URL to files (REQUIRED)
     210                    'path'          => FM_MEDIA_BASE_DIR_PATH,                     // path to files (REQUIRED)
     211                    'URL'           => FM_MEDIA_BASE_DIR_URL,                  // URL to files (REQUIRED)
    172212                    'uploadDeny'    => array(),                // All Mimetypes not allowed to upload
    173213                    'uploadAllow'   => $mime->get_types(), // All MIME types is allowed
     
    178218            )
    179219        );
     220
    180221
    181222        /**
     
    194235    public function security_check(){
    195236        // Checks if the current user have enough authorization to operate.
    196         if( ! wp_verify_nonce( $_POST['file_manager_security_token'] ,'file-manager-security-token') || !current_user_can( 'manage_options' ) ) wp_die();
    197         check_ajax_referer('file-manager-security-token', 'file_manager_security_token');
     237        if( ! wp_verify_nonce( $_POST['file_manager_security_token'] ,'fm_nonce') || !current_user_can( 'manage_options' ) ) wp_die();
     238        check_ajax_referer('fm_nonce', 'file_manager_security_token');
    198239    }
    199240
     
    254295$FileManager = new FM('File Manager');
    255296
     297
     298
    256299if(!function_exists('pr')):
    257300function pr($obj){
  • file-manager/trunk/inc/class.review.php

    r2701235 r2701888  
    2020    function __construct(){
    2121        // Checking the review status
    22         if(isset($_GET['fm-review-status']))
    23             $_GET['fm-review-status'] = sanitize_text_field($_GET['fm-review-status']);
     22        $review_status = isset($_GET['fm-review-status']) ? sanitize_text_field($_GET['fm-review-status']): '';
     23        if( in_array( $review_status, $this->status ) ){
    2424
    25         if(!empty($_GET['fm-review-status']) && in_array($_GET['fm-review-status'], $this->status)){
    26             $review_status = $_GET['fm-review-status'];
    2725            switch($review_status){
    2826                case 'review-successfull':
  • file-manager/trunk/views/admin/files.php

    r2701235 r2701888  
    3535
    3636
     37
    3738// Command options modifier
    3839$commandOptions = [];
     
    5152wp_enqueue_style( 'fmp-elfinder-theme-css' );
    5253
    53 wp_enqueue_script('fmp-elfinder-script');
    54 wp_enqueue_script('fmp-elfinder-editor-script');
     54
     55wp_enqueue_script($FileManager->is_minified_file_load('fmp-elfinder-script')['handle']);
     56wp_enqueue_script( $FileManager->is_minified_file_load('fmp-elfinder-editor-script')['handle']);
    5557
    5658// Testing
     
    6870<script>
    6971
    70 PLUGINS_URL = '<?php echo plugins_url();?>';
     72PLUGINS_URL = '<?php echo esc_js(plugins_url());?>';
    7173
    7274jQuery(document).ready(function(){
    73 
     75  console.log(ajaxurl);
    7476    jQuery('#file-manager').elfinder({
    7577        url: ajaxurl,
     
    7981            ]
    8082        },
    81         customData:{action: 'connector', file_manager_security_token: '<?php echo wp_create_nonce( "file-manager-security-token" ); ?>'},
     83        customData:{action: 'connector', file_manager_security_token: fm.nonce},
    8284        lang: '<?php if( isset($language_code) ) echo esc_js($language_code); ?>',
    8385        requestType: 'post',
  • file-manager/trunk/views/admin/footer.php

    r2625875 r2701888  
    1616        <li><a href='https://wpjos.com/contacts/'><?php _e("Contacts", 'file-manager'); ?></a></li>
    1717        <li><a href='https://wpjos.com/documentations/'><?php _e("Docs", 'file-manager'); ?></a></li>
    18         <li><a href='<?= $FileManager->feedback_page; ?>'><?php _e("Review", 'file-manager'); ?></a></li>
    19         <li><a href='<?= $FileManager->support_page; ?>'><?php _e("Help & Support", 'file-manager'); ?></a></li>
    20         <li><a href='<?= $FileManager->site; ?>'>WPJos</a></li>
     18        <li><a href='<?php esc_url($FileManager->feedback_page); ?>'><?php _e("Review", 'file-manager'); ?></a></li>
     19        <li><a href='<?php esc_url($FileManager->support_page); ?>'><?php _e("Help & Support", 'file-manager'); ?></a></li>
     20        <li><a href='<?php esc_url($FileManager->site); ?>'>WPJos</a></li>
    2121    </ul>
    2222
  • file-manager/trunk/views/admin/header.php

    r2628736 r2701888  
    1717
    1818    <ul class='top-right-menu'>
    19         <li><a href='<?php echo $FileManager->support_page; ?>'><?php _e("Need help?", 'file-manager'); ?></a></li>
    20         <li><a href='<?php echo $FileManager->feedback_page; ?>'><?php _e("Leave us a feedback", 'file-manager'); ?></a></li>
    21         <li class='fm-marketing'><a href='<?php echo $FileManager->giribaz_landing_page; ?>'><?php _e("Extend", 'file-manager'); ?></a></li>
     19        <li><a href='<?php echo esc_url($FileManager->support_page); ?>'><?php _e("Need help?", 'file-manager'); ?></a></li>
     20        <li><a href='<?php echo esc_url($FileManager->feedback_page); ?>'><?php _e("Leave us a feedback", 'file-manager'); ?></a></li>
     21        <li class='fm-marketing'><a href='<?php echo esc_url($FileManager->giribaz_landing_page); ?>'><?php _e("Extend", 'file-manager'); ?></a></li>
    2222    </ul>
    2323
  • file-manager/trunk/views/admin/settings.php

    r2701235 r2701888  
    2323
    2424$admin_page_url = admin_url()."admin.php?page={$FileManager->prefix}";
    25 
    26 if( !isset($_GET['sub_page']) || empty($_GET['sub_page']) ) $_GET['sub_page'] = 'files';
    27 
    28 $_GET['sub_page'] = sanitize_text_field($_GET['sub_page']);
    2925
    3026// Enqueing admin assets
  • file-manager/trunk/views/admin/utility.php

    r2701235 r2701888  
    5151    <tr>
    5252        <td><?php _e("Browser and OS", 'file-manager'); ?></td>
    53         <td><?php echo $_SERVER['HTTP_USER_AGENT']; ?></td>
     53        <td><?php echo esc_html($_SERVER['HTTP_USER_AGENT']); ?></td>
    5454    </tr>
    5555   
Note: See TracChangeset for help on using the changeset viewer.