Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/05/2006, 07:02
josealh
 
Fecha de Ingreso: mayo-2006
Mensajes: 34
Antigüedad: 17 años, 11 meses
Puntos: 0
Resuelto

Hola,

Investigando un poquillo he podido comprobar que es un tema seguridad y de variables que están deshabilitadas en el servidor.

He leído que una posible solución es acceder al fihero php.ini y modificar el estado "off" a "on" de register_globals. Ejemplo: register_globals=On. Transcribo info encontrada:

Si las variables que llegan por un formulario se declaran automáticamente en la página podría ocurrir que un visitante "avispado" modificase a mano la lista de variables pasadas por la URL con intención de crear alguna variable necesaria para realizar algún tipo de acción, posiblemente no autorizada, en nuestro sitio web.

No se si la idea queda clara, pero en el supuesto de que nosotros estuviéramos utilizando una variable de sesión, llamada autorizado y con valor “si”, para saber si un usuario se ha autentificado correctamente, un posible atacante podría introducirla a través de la URL.

3w.tudominio.com/pagina.php?autorizado=si

El tema es que, por motivos de seguridad, se recomienda acceder a cada variable de servidor (Variables de sesión, de fomularios, pasadas en la URL, etc.) indicando las vías por las que ha sido declarado, por ejemplo:

HTTP_POST_VARS
HTTP_GET_VARS …

Aunque a partir de determinada versión de PHP se puede acceder también por las abreviaciones:

_GET
_SESSION
_COOKIE
...


Yo, al final, como no tenía ni idea de donde buscar ese php.ini opté por usar _GET, _POST... y quedó de la siguiente forma:

Llamada con paso por parámetros:

<form METHOD="POST" action="vba/download.php?archivo=AñadeGG">
<TD VALIGN=center align=center BGCOLOR=#af9494>
<INPUT type="submit" value="Descargar" class="ButtonDescarga"></TD>
</form>


El fichero download.php que recibe el parámetro:

<?
$extension = ".rar"; // EXTENSION DE ARCHIVOS

if (file_exists("$_POST[archivo]$extension")) {
header("location: $_POST[archivo]$extension");
$file = fopen("contador/$_POST[archivo].inc","r"); // contador de downloads
$count = fread($file, 100);
$countplus = ($count + 1);
fclose($file);
$fileb = fopen("contador/$_POST[archivo].inc","w");
fwrite($fileb, $countplus, 100);
fclose($fileb);
}

else { echo "El archivo <b>$archivo$extension</b> no EXISTE"; }
?>


Un saludo a todos.

Última edición por josealh; 11/05/2006 a las 00:23