Dotclear

Changeset 3746:0cae5565cdc8


Ignore:
Timestamp:
03/30/18 13:36:59 (7 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

Fix potential reflective XSS, thank's Zekvan Arslan for report (via Daniel Bishtawi from  https://www.netsparker.com/)

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • admin/blogs.php

    r3731 r3746  
    7575    if ($order !== '' && in_array($order, $order_combo, true)) { 
    7676        $params['order'] = $sortby . ' ' . $order; 
     77    } else { 
     78        $order = 'desc'; 
    7779    } 
    7880} else { 
  • inc/admin/lib.pager.php

    r3731 r3746  
    4949            unset($args['ok']); 
    5050        } 
     51 
    5152        $this->form_hidden = ''; 
    5253        foreach ($args as $k => $v) { 
    53             if (is_array($v)) { 
    54                 foreach ($v as $k2 => $v2) { 
    55                     $this->form_hidden .= form::hidden(array($k . '[]'), html::escapeHTML($v2)); 
     54            // Check parameter key (will prevent some forms of XSS) 
     55            if ($k === preg_replace('`[^A-Za-z0-9_-]`', '', $k)) { 
     56                if (is_array($v)) { 
     57                    foreach ($v as $k2 => $v2) { 
     58                        $this->form_hidden .= form::hidden(array($k . '[]'), html::escapeHTML($v2)); 
     59                    } 
     60                } else { 
     61                    $this->form_hidden .= form::hidden(array($k), html::escapeHTML($v)); 
    5662                } 
    57             } else { 
    58                 $this->form_hidden .= form::hidden(array($k), html::escapeHTML($v)); 
    5963            } 
    6064        } 
Note: See TracChangeset for help on using the changeset viewer.

Sites map