Changeset 1293

Show
Ignore:
Timestamp:
02/18/06 23:44:21 (3 years ago)
Author:
mbonetti
Message:

sanitizing of search.php

Location:
trunk/rss
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/rss/cls/search.php

    r1181 r1293  
    106106        } 
    107107 
    108         $this->query = $_REQUEST[QUERY_PRM]; 
     108                // fixme: this probably breaks on queries with weird characters, depending 
     109                // on the locale.  
     110                // see: http://php.benscom.com/manual/en/reference.pcre.pattern.syntax.php 
     111        $this->query = trim(preg_replace('#[^\w\s]#','',$_REQUEST[QUERY_PRM])); 
     112         
    109113        if (!$this->query) { 
    110114            return; 
    111115        } 
    112116 
    113         $this->matchMode = (!array_key_exists(QUERY_MATCH_MODE, $_REQUEST) ? QUERY_MATCH_AND : $_REQUEST[QUERY_MATCH_MODE]); 
    114         $this->channelId = (array_key_exists(QUERY_CHANNEL, $_REQUEST)) ? (int) $_REQUEST[QUERY_CHANNEL] : ALL_CHANNELS_ID; 
    115  
    116         $this->resultsPerPage = (array_key_exists(QUERY_RESULTS, $_REQUEST)) ? (int) $_REQUEST[QUERY_RESULTS] : INFINE_RESULTS; 
    117         $this->currentPage = (array_key_exists(QUERY_CURRENT_PAGE, $_REQUEST) ? (int) $_REQUEST[QUERY_CURRENT_PAGE] : 0); 
     117        $this->matchMode = sanitize( 
     118                (!array_key_exists(QUERY_MATCH_MODE, $_REQUEST) ? QUERY_MATCH_AND : $_REQUEST[QUERY_MATCH_MODE]),  
     119            RSS_SANITIZER_CHARACTERS_EXT); 
     120             
     121        $this->channelId = sanitize( 
     122            ((array_key_exists(QUERY_CHANNEL, $_REQUEST)) ? $_REQUEST[QUERY_CHANNEL] : ALL_CHANNELS_ID), 
     123            RSS_SANITIZER_NUMERIC); 
     124 
     125        $this->resultsPerPage = sanitize( 
     126            ((array_key_exists(QUERY_RESULTS, $_REQUEST)) ? $_REQUEST[QUERY_RESULTS] : INFINE_RESULTS), 
     127            RSS_SANITIZER_NUMERIC); 
     128         
     129        $this->currentPage = sanitize( 
     130            (array_key_exists(QUERY_CURRENT_PAGE, $_REQUEST) ? $_REQUEST[QUERY_CURRENT_PAGE] : 0), 
     131            RSS_SANITIZER_NUMERIC); 
    118132 
    119133        $this->startItem = $this->resultsPerPage * $this->currentPage; 
     
    125139        } 
    126140 
    127         $this->orderBy = (array_key_exists(QUERY_ORDER_BY, $_REQUEST) ? $_REQUEST[QUERY_ORDER_BY] : QUERY_ORDER_BY_DATE); 
     141        $this->orderBy = sanitize( 
     142            (array_key_exists(QUERY_ORDER_BY, $_REQUEST) ? $_REQUEST[QUERY_ORDER_BY] : QUERY_ORDER_BY_DATE), 
     143            RSS_SANITIZER_CHARACTERS_EXT); 
     144             
    128145        $qWhere = ""; 
    129146        $this->regMatch = ""; 
  • trunk/rss/constants.php

    r1275 r1293  
    165165define ('RSS_SANITIZER_NUMERIC', 0x04); 
    166166define ('RSS_SANITIZER_CHARACTERS',0x08); 
     167define ('RSS_SANITIZER_CHARACTERS_EXT',0x10); 
    167168 
    168169// Profiling  
  • trunk/rss/util.php

    r1291 r1293  
    11831183    } 
    11841184    if ($rules & RSS_SANITIZER_NUMERIC) { 
    1185         $ret = preg_replace('#[^0-9\.]#','',$ret); 
     1185        $ret = preg_replace('#[^0-9\.-]#','',$ret); 
    11861186    }    
    11871187    if ($rules & RSS_SANITIZER_CHARACTERS) { 
    11881188        $ret = preg_replace('#[^a-zA-Z]#','',$ret); 
    11891189    } 
     1190    if ($rules & RSS_SANITIZER_CHARACTERS_EXT) { 
     1191        $ret = preg_replace('#[^a-zA-Z_]#','',$ret); 
     1192    } 
    11901193    return $ret; 
    11911194}