Pogledajte određenu poruku
Staro 01. 08. 2006.   #11
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Uglavnom, ako nekom trebaju funkcije za čišćenje stringova i prosta zamena var_dump koja je otporna na XSS može da proba ove funkcije:

PHP kôd:
/**
* Equivalent to htmlspecialchars(), but allows &#[0-9]+ (for unicode)
*
* @access public
* @param string $str
* @return string
*/
function clean($str) {
  
$str preg_replace('/&(?!#[0-9]+;)/s''&'$str);
    
$str str_replace(array('<''>''"'), array('&lt;''&gt;''&quot;'), $str);

    return 
$str;
// clean

/**
* This function will return clean variable info
*
* @param mixed $var
* @param string $indent Indent is used when dumping arrays recursivly
* @param string $indent_close_bracet Indent close bracket param is used
*   internaly for array output. It is shorter that var indent for 2 spaces
* @return null
*/
function clean_var_info($var$indent '&nbsp;&nbsp;'$indent_close_bracet '') {
  if(
is_object($var)) {
    return 
'Object (class: ' get_class($var) . ')';
  } elseif(
is_resource($var)) {
    return 
'Resource (type: ' get_resource_type($var) . ')';
  } elseif(
is_array($var)) {
    
$result 'Array (';
    if(
count($var)) {
      foreach(
$var as $k => $v) {
        
$k_for_display is_integer($k) ? $k "'" clean($k) . "'";
        
$result .= "\n" $indent '[' $k_for_display '] => ' clean_var_info($v$indent '&nbsp;&nbsp;'$indent_close_bracet $indent);
      } 
// foreach
    
// if
    
return $result "\n$indent_close_bracet)";
  } elseif(
is_int($var)) {
    return 
'(int)' $var;
  } elseif(
is_float($var)) {
    return 
'(float)' $var;
  } elseif(
is_bool($var)) {
    return 
$var 'true' 'false';
  } elseif(
is_null($var)) {
    return 
'NULL';
  } else {
    return 
"(string) '" clean($var) . "'";
  } 
// if
// clean_var_info 
Prva je preuzeta iz punBBa, a drugu sam napisao kada su mi prijavili XSS propust u var_dumpu. Druga je daleko od potpune jer ne radi kompletan dump podataka o objektu, ali za neke jednostavnije stvari je i više nego dovoljna.
Ilija Studen je offline   Odgovorite uz citat