Foros del Web » Programando para Internet » PHP »

SEGURIDAD en un formulario

Estas en el tema de SEGURIDAD en un formulario en el foro de PHP en Foros del Web. Hola. Mediante un script leo el contenido de un formulario y se crea un archivo .html con él (es para que los usuarios se creen ...
  #1 (permalink)  
Antiguo 08/01/2004, 10:25
 
Fecha de Ingreso: febrero-2003
Mensajes: 54
Antigüedad: 14 años, 10 meses
Puntos: 0
SEGURIDAD en un formulario

Hola.
Mediante un script leo el contenido de un formulario y se crea un archivo .html con él (es para que los usuarios se creen una pagina web)

Dado que no puedo usar htmlentities o htmlspecialchars ya que si lo hago todo el codigo HTML se formatea, estoy buscando alguna orden en php que evite que se introduzca codigo en php en el formulario, ya que se procesará antes de generar el archivo html, y eso es una vulnerabilidad muy grande.

Ya he puesto que se substituya <? y ?> por " " (nada), y ' por &acute y lo mínimo está echo, pero creo que aun es inseguro. Alguna sugerencia? La idea es que no se pueda ejecutar nada en php.

Aqui esta el codigo:
Código PHP:
<?
if (strlen($_POST["campohtml"]) > 2500) {
      echo 
"<div align=\"center\">
  <h3>ERROR</h3>
<p> Has superado el tamaño maximo del formulario </p>
</div>"
;

}
else {
$pagina_html "".$_POST["campohtml"]."";
$pagina_html str_replace("'","&acute;",$pagina_html); 
$pagina_html str_replace("<?",":S",$pagina_html); 
$pagina_html str_replace("?>",":S",$pagina_html); 
}
?>
Muchas Gracias
  #2 (permalink)  
Antiguo 08/01/2004, 10:36
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Mira si te sirve strip_tags() (www.php.net/strip_tags).

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 08/01/2004, 11:52
 
Fecha de Ingreso: febrero-2003
Mensajes: 54
Antigüedad: 14 años, 10 meses
Puntos: 0
Gracias por contestar. Lo he probado, pero tambien me formatea todo el html (los usuarios escriben su pagina en html y php genera un archivo html, pero claro primero tiene que leerlo y en esa lectura es donde se "ejecutaria" el codigo maligno que un usuario pudiera haver incluido en el form).

Se puede permitir html pero negar php? Gracias.
  #4 (permalink)  
Antiguo 08/01/2004, 12:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La función ... htmlentities() hace lo mismo (y más) que la série de str_replace() que tienes en tu código actual ...

No entiendo donde dices que se "ejecutaria" ese código (acaso haces un "include()" del código que ha ingresado ese usuario?) ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 08/01/2004, 12:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Si te fijas en strip_tags() puedes especificar la lista de etiquetas permitidas (solo tendrias que especificar todas las etiquetas HTML que quieras permitir). Y si revisas los comentarios de los usuarios, veras muchos codigos para permitir ciertas etiquetas.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 05:33.