Foros del Web » Programando para Internet » PHP »

codigo de seguridad

Estas en el tema de codigo de seguridad en el foro de PHP en Foros del Web. hola muchachos he encontrado por ahi este codigo que me dicen? es efectivo? se aplica de entrada o salida? ahi va @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: ...
  #1 (permalink)  
Antiguo 07/04/2010, 11:56
 
Fecha de Ingreso: octubre-2009
Mensajes: 357
Antigüedad: 14 años, 6 meses
Puntos: 1
codigo de seguridad

hola muchachos he encontrado por ahi este codigo
que me dicen?
es efectivo?
se aplica de entrada o salida?


ahi va

Código PHP:
Ver original
  1. <?php
  2.  
  3. function h($string, $esc_type = 'htmlall')
  4. {
  5.     switch ($esc_type) {
  6.         case 'css':
  7.             $string = str_replace(array('<', '>', '\\'), array('&lt;', '&gt;', '/'), $string);
  8.             // get rid of various versions of javascript
  9.             $string = preg_replace(
  10.                     '/j\s*[\\\]*\s*a\s*[\\\]*\s*v\s*[\\\]*\s*a\s*[\\\]*\s*s\s*[\\\]*\s*c\s*[\\\]*\s*r\s*[\\\]*\s*i\s*[\\\]*\s*p\s*[\\\]*\s*t\s*[\\\]*\s*:/i',
  11.                     'blocked', $string);
  12.             $string = preg_replace(
  13.                     '/@\s*[\\\]*\s*i\s*[\\\]*\s*m\s*[\\\]*\s*p\s*[\\\]*\s*o\s*[\\\]*\s*r\s*[\\\]*\s*t/i',
  14.                     'blocked', $string);
  15.             $string = preg_replace(
  16.                     '/e\s*[\\\]*\s*x\s*[\\\]*\s*p\s*[\\\]*\s*r\s*[\\\]*\s*e\s*[\\\]*\s*s\s*[\\\]*\s*s\s*[\\\]*\s*i\s*[\\\]*\s*o\s*[\\\]*\s*n\s*[\\\]*\s*/i',
  17.                     'blocked', $string);
  18.             $string = preg_replace('/b\s*[\\\]*\s*i\s*[\\\]*\s*n\s*[\\\]*\s*d\s*[\\\]*\s*i\s*[\\\]*\s*n\s*[\\\]*\s*g:/i', 'blocked', $string);
  19.                 return $string;
  20.  
  21.         case 'html':
  22.             //return htmlspecialchars($string, ENT_NOQUOTES);
  23.             return str_replace(array('<', '>'), array('&lt;' , '&gt;'), $string);
  24.  
  25.         case 'htmlall':
  26.             return htmlentities($string, ENT_QUOTES);
  27.         case 'url':
  28.             return rawurlencode($string);
  29.         case 'query':
  30.             return urlencode($string);
  31.  
  32.         case 'quotes':
  33.             // escape unescaped single quotes
  34.             return preg_replace("%(?<!\\\\)'%", "\\'", $string);
  35.  
  36.         case 'hex':
  37.             // escape every character into hex
  38.             $s_return = '';
  39.             for ($x=0; $x < strlen($string); $x++) {
  40.                 $s_return .= '%' . bin2hex($string[$x]);
  41.             }
  42.             return $s_return;
  43.  
  44.         case 'hexentity':
  45.             $s_return = '';
  46.             for ($x=0; $x < strlen($string); $x++) {
  47.                 $s_return .= '&#x' . bin2hex($string[$x]) . ';';
  48.             }
  49.             return $s_return;
  50.  
  51.         case 'decentity':
  52.             $s_return = '';
  53.             for ($x=0; $x < strlen($string); $x++) {
  54.                 $s_return .= '&#' . ord($string[$x]) . ';';
  55.             }
  56.             return $s_return;
  57.  
  58.         case 'javascript':
  59.             // escape quotes and backslashes, newlines, etc.
  60.             return strtr($string, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n','</'=>'<\/'));
  61.  
  62.         case 'mail':
  63.             // safe way to display e-mail address on a web page
  64.             return str_replace(array('@', '.'),array(' [AT] ', ' [DOT] '), $string);
  65.  
  66.         case 'nonstd':
  67.             // escape non-standard chars, such as ms document quotes
  68.             $_res = '';
  69.             for($_i = 0, $_len = strlen($string); $_i < $_len; $_i++) {
  70.                 $_ord = ord($string{$_i});
  71.                 // non-standard char, escape it
  72.                 if($_ord >= 126){
  73.                     $_res .= '&#' . $_ord . ';';
  74.                 } else {
  75.                     $_res .= $string{$_i};
  76.                 }
  77.             }
  78.                return $_res;
  79.  
  80.         default:
  81.             return $string;
  82.     }
  83. }
  84.    
  85. ?>
  #2 (permalink)  
Antiguo 07/04/2010, 11:57
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: codigo de seguridad

¿que es lo que se supone que tiene que comprobar?
  #3 (permalink)  
Antiguo 07/04/2010, 11:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: codigo de seguridad

La pregunta sería, efectivo para que?, y por lo que veo se usa de entrada o salida para imprimir un dato o guardarlo es como tu lo uses.

Saludos.
  #4 (permalink)  
Antiguo 07/04/2010, 12:25
 
Fecha de Ingreso: octubre-2009
Mensajes: 357
Antigüedad: 14 años, 6 meses
Puntos: 1
se llama codigo
"KILL XSS"

aqui el link

!http://www.codebelay.com/killxss.phps!


-creí que podria usarlo a modo de seguridad.

a ver..


creo que cada actividad de una variable se pasa por esta funcion , y esta decidira dependiendo de su origen (mail, query,etc) que sanitizacion debera hacer.

la pregunta es si es efectiva o no, (claro que no 100%), pero si es utilizable, y donde se utiliza ..al principio de cada variable?.

nose, he visto codigos de seguridad y como principiante creo que este se abstrae de
mucho codigo.


que creen'?

Otra vez por aqui.
pregunto si alguen entiende como se aplica
y si esto es sufuciente para asegurar php .


gracias

Última edición por GatorV; 08/04/2010 a las 16:12

Etiquetas: seguridad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:07.