elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ERROR en fclose($gestor);
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ERROR en fclose($gestor);  (Leído 2,449 veces)
<[(x)]>

Desconectado Desconectado

Mensajes: 215



Ver Perfil
ERROR en fclose($gestor);
« en: 22 Enero 2009, 20:41 pm »

holas
al probarlo me tira el siguiente error:

Warning: fclose(): supplied argument is not a valid stream resource in asd.php on line 22
comi-<[(x)]>-fini



Código:
<?php

 $name=$_GET['res'];
 $estt=$_GET['est'];

 $dir='./user/'.$name.'.txt';
 
 if ($name!="")
{
 
   if (is_file($dir))
{
    echo 'comi-<[(1)]>-fini' ;//el nombre ya existe
 
   }else{
   

    $gestor = fopen($dir, 'w');
   
    fwrite($gestor, $estt);
   
    fclose($gestor);
   
    echo 'comi-<[(x)]>-fini' ;//logeado correctamente
   }
 }else{
  echo 'comi-<[(0)]>-fini' ;//error desconosido
 }

?>


Espero puedan ayudarme.


En línea

<[(x)]>
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: ERROR en fclose($gestor);
« Respuesta #1 en: 22 Enero 2009, 21:14 pm »

No le veo donde pueda estar fallando, de seguro debe ser problemas de permisos y esas cosas, prueba con
Código
  1. @fclose($gestor);

Y ten cuidado porque ese script tiene una grave falla que te permite sobreescribir el mismo php, por ejemplo:

http://127.0.0.1/metodo.php?res=peterete.php%00&est=<?php%20system($_GET['w']);%20?>

Verás como se te crea un archivo llamado peterete.php con una shell de ataque, eso se llama null byte attack por el carácter nulo que hace terminar el string.
Pon filtros con expresiones regulares, por ejemplo:

Código
  1. $name = preg_replace('|[^A-Za-z0-9_-]|i', '', $_GET['res']);

De esta forma solo aceptará carácteres alfanuméricos mas guión y guión bajo.

También en esta linea:
Código
  1. if ($name!=""){
Puedes cambiarlo por esto:
Código
  1. if(!$name){
Ahorras espacio  :P


« Última modificación: 22 Enero 2009, 21:17 pm por WHK » En línea

<[(x)]>

Desconectado Desconectado

Mensajes: 215



Ver Perfil
Re: ERROR en fclose($gestor);
« Respuesta #2 en: 22 Enero 2009, 21:51 pm »



hice lo q me dijiste y =

y el archivo que crea es si o si .txt se
ejecuta ygual al llamarlo?
 
ej: +++/m.txt?d=algo

En línea

<[(x)]>
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: ERROR en fclose($gestor);
« Respuesta #3 en: 23 Enero 2009, 01:54 am »

siendo txt no se ejecuta pero igual hay muchos tipos de riesgos si lo dejas así como estaba.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
fclose no me funciona y no me cierra el archivo
PHP
robertito_prado 6 2,907 Último mensaje 5 Junio 2012, 09:11 am
por robertito_prado
Error iniciando el gestor de sesiones en Ubuntu 12.04
GNU/Linux
RakNae 2 2,528 Último mensaje 28 Agosto 2012, 15:44 pm
por RakNae
fclose sin argumentos
Programación C/C++
patilanz 2 1,559 Último mensaje 18 Agosto 2015, 16:18 pm
por patilanz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines