Foros del Web » Programando para Internet » PHP »

Palabras "prohibidas"

Estas en el tema de Palabras "prohibidas" en el foro de PHP en Foros del Web. Saludos amigos... Estoy haciendo un comprobador de código online, html css php, en mi web.... es un proyecto que veremos como sale El tema es ...
  #1 (permalink)  
Antiguo 24/03/2015, 13:37
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Palabras "prohibidas"

Saludos amigos...

Estoy haciendo un comprobador de código online, html css php, en mi web.... es un proyecto que veremos como sale

El tema es que el usuario, si por ejemplo mete en el código phpinfo(); le sale todo la información php de mi hosting.

Entonces, antes de mostrar el resultado evalúo lo que ha metido para que no meta código peligroso para mi hosting...
Código PHP:
if (preg_match("/phpinfo/"$resultado)) {
    echo 
"chico malo";

Os pido ayuda a los maestros para que me informeis que funciones, expresiones, etc debería poner en el preg_match para que así no ejecutara el código y no fuera peligroso.

Mi idea es para probar código sencillo.... pero claro, por la web hay gente con malas ideas

Gracias a todos
  #2 (permalink)  
Antiguo 24/03/2015, 13:41
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Palabras "prohibidas"

y si usas str_replace?

Código PHP:
Ver original
  1. $invalid = array("phpinfo","mysql","insert");
  2.  
  3. str_replace($invalid,"",$_POST["txt"]);
  #3 (permalink)  
Antiguo 24/03/2015, 13:44
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Palabras "prohibidas"

No creo que puedas remediarlo con una simple expresión regular.

https://www.owasp.org/index.php/XSS_...on_Cheat_Sheet (eso solo por parte del usuario)

También existen módulos y librerías.
  #4 (permalink)  
Antiguo 24/03/2015, 14:09
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Respuesta: Palabras "prohibidas"

Cita:
Iniciado por Maganius Ver Mensaje
y si usas str_replace?

Código PHP:
Ver original
  1. $invalid = array("phpinfo","mysql","insert");
  2.  
  3. str_replace($invalid,"",$_POST["txt"]);
Gracias por la sugerencia..... la probaré, aunque preg_match también funciona bien.
  #5 (permalink)  
Antiguo 24/03/2015, 14:12
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Respuesta: Palabras "prohibidas"

Cita:
Iniciado por PHPeros Ver Mensaje
No creo que puedas remediarlo con una simple expresión regular.

[url]https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet[/url] (eso solo por parte del usuario)

También existen módulos y librerías.
Gracias por la info.... aunque mi ingles es malo lo estoy buscando en español.
Pero, este tipo de ataques, si el hosting esta bien configurado y asegurado... no surten efecto?
  #6 (permalink)  
Antiguo 24/03/2015, 14:15
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Palabras "prohibidas"

Cita:
Iniciado por Jilti Ver Mensaje
Pero, este tipo de ataques, si el hosting esta bien configurado y asegurado... no surten efecto?
Ojalá fuera así
  #7 (permalink)  
Antiguo 24/03/2015, 21:58
 
Fecha de Ingreso: abril-2001
Ubicación: Argentina
Mensajes: 67
Antigüedad: 23 años
Puntos: 0
Respuesta: Palabras "prohibidas"

Código PHP:
<?php

function filterXSS($variable){
    
    
$variable preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\x20])/'''$variable);
    
    
$buscar 'abcdefghijklmnopqrstuvwxyz';
    
$buscar .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    
$buscar .= '1234567890!@#$%^&*()';
    
$buscar .= '~`";:?+/={}[]-_|\'\\';
    
    for (
$i 0$i strlen($buscar); $i++) {
        
        
$variable preg_replace('/(&#[x|X]0{0,8}'.dechex(ord($buscar[$i])).';?)/i'$buscar[$i], $variable); 
        
$variable preg_replace('/(&#0{0,8}'.ord($buscar[$i]).';?)/'$buscar[$i], $variable);
        
        }
        
        
$ra1 = Array('javascript''vbscript''expression''applet''meta''xml''blink''link''style''script''embed''object''iframe''frame''frameset''ilayer''layer''bgsound''title''base');
        
        
$ra2 = Array('onabort''onactivate''onafterprint''onafterupdate''onbeforeactivate''onbeforecopy''onbeforecut''onbeforedeactivate''onbeforeeditfocus''onbeforepaste''onbeforeprint''onbeforeunload''onbeforeupdate''onblur''onbounce''oncellchange''onchange''onclick''oncontextmenu''oncontrolselect''oncopy''oncut''ondataavailable''ondatasetchanged''ondatasetcomplete''ondblclick''ondeactivate''ondrag''ondragend''ondragenter''ondragleave''ondragover''ondragstart''ondrop''onerror''onerrorupdate''onfilterchange''onfinish''onfocus''onfocusin''onfocusout''onhelp''onkeydown''onkeypress''onkeyup''onlayoutcomplete''onload''onlosecapture''onmousedown''onmouseenter''onmouseleave''onmousemove''onmouseout''onmouseover''onmouseup''onmousewheel''onmove''onmoveend''onmovestart''onpaste''onpropertychange''onreadystatechange''onreset''onresize''onresizeend''onresizestart''onrowenter''onrowexit''onrowsdelete''onrowsinserted''onscroll''onselect''onselectionchange''onselectstart''onstart''onstop''onsubmit''onunload');
        
        
$ra array_merge($ra1$ra2);
        
        
$encontrado true;
        
        while (
$encontrado == true) {
            
            
$variable_antes $variable;
            
            for (
$i 0$i sizeof($ra); $i++) {
                
                
$pattern '/';
                
                for (
$j 0$j strlen($ra[$i]); $j++) {
                    
                    if (
$j 0) {
$pattern .= '(';
$pattern .= '(&#[x|X]0{0,8}([9][a][b]);?)?';
$pattern .= '|(&#0{0,8}([9][10][13]);?)?';
$pattern .= ')?';
}
$pattern .= $ra[$i][$j];
}
$pattern .= '/i';
$replacement substr($ra[$i], 02).'<x>'.substr($ra[$i], 2);

        
$variable preg_replace($pattern$replacement$variable);
        
        if (
$variable_antes == $variable) {
    
$encontrado false;
}
}
}
return 
$variable;
}
?>
Prueba esta =)

De mi cosecha
__________________
Saludos!
  #8 (permalink)  
Antiguo 25/03/2015, 05:24
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Respuesta: Palabras "prohibidas"

Joderrr.... este script es para evitar ataques XSS, no?
Gracias por él

Etiquetas: html, palabras
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 02:36.