Programación Web y Scripting > PHP

 Seguridad En Una Web

<< < (2/3) > >>

Avalon:
Hola, lo que yo hago en estos casos es ubicar los ficheros en un directorio que no sea accesible via navegador ( ¿podría ser /var/www/ficheros/? ). Después creo un script en PHP que lea los ficheros y los vuelque al buffer de salida en el momento en que se solicita la descarga utilizando fpassthru.

Este ejemplo se encuentra en http://www.php.net/fpassthru aunque en el momento en que escribo este mensaje no están disponibles esas contribuciones de usuarios por problemas en los servidores de php.net


--- Código: Text ---&#60;?/*/Download a file using fpassthru()/*/&#036;fileDir = &#34;/home/pathto/myfiles&#34;; // supply a path name.&#036;fileName = &#34;myfile.zip&#34;; // supply a file name.&#036;fileString=&#036;fileDir.'/'.&#036;fileName; // combine the path and file// translate file name properly for Internet Explorer.if (strstr(&#036;_SERVER['HTTP_USER_AGENT'], &#34;MSIE&#34;)){  &#036;fileName = preg_replace('/&#092;./', '%2e', &#036;fileName, substr_count(&#036;fileName, '.') - 1);}// make sure the file exists before sending headersif(!&#036;fdl=@fopen(&#036;fileString,'r')){   die(&#34;Cannot Open File!&#34;);} else {  header(&#34;Cache-Control: &#34;);// leave blank to avoid IE errors  header(&#34;Pragma: &#34;);// leave blank to avoid IE errors  header(&#34;Content-type: application/octet-stream&#34;);  header(&#34;Content-Disposition: attachment; filename=&#092;&#34;&#34;.&#036;fileName.&#34;&#092;&#34;&#34;);  header(&#34;Content-length:&#34;.(string)(filesize(&#036;fileString)));   sleep(1);   fpassthru(&#036;fdl);}?&#62; 
Espero que te sirva.

Salu2,
Avalon

Slimer:
Hola a todos:

Muchas gracias en principio por "atender" mi peticion, y para seguir, agracecer todas las aportaciones ofrecidas.

Ya os contare como me ha ido y repetir mi agradecimiento a todos...
 :D

Un saludo


         Slimer

maguuski:
yo tengo un proble algo parecido a el de slimer pero yo lo estoy a siendo en php o en java

en realidad e intentado sobre todas las formas posibles y asta el momento de abrir el enlace  todo sale bien pero cuando se habre  se ve la direccion  de donde la tengo en mi base de datos


 ;) le agradeceria sus recomendaciones

Slimer:
Hola otra vez a todos:

Simplemente comentar que Funciona todo PERFECTAMENTE!!!! excepto un detalle que no creo que sea importante. Me da unos errores en las líneas


--- Código: Text --- header(&#34;Cache-Control: &#34;);// leave blank to avoid IE errors header(&#34;Pragma: &#34;);// leave blank to avoid IE errors header(&#34;Content-type: application/octet-stream&#34;); header(&#34;Content-Disposition: attachment; filename=&#092;&#34;&#34;.&#036;fileName.&#34;&#092;&#34;&#34;); header(&#34;Content-length:&#34;.(string)(filesize(&#036;fileString)));  
Parece que sea una especie de comprobaciones, pero lo dicho, no creo que sea extremadamente importante (rectificarme si me equivoco),
Remarcar que en principio ME FUNCIONA TODO A LAS MIL MARAVILLAS!...     :bravo:  

Muchas :gracias:  a todos...

Un saludo

Slimer  :kicking:

Slimer:
Hola:

Siento el volver a molestar, pero ahora que estoy implementando esto en mas detalle, tengo que comentar que no me funciona del todo bien:

El problema es que si que me redirige a un directorio por bajo del "raiz", pero, a la hora de ejecutar, por ejemplo un simple


--- Código: Text --- &#60;?echo &#34;imprime algo&#34;;?&#62;  
Pues como que no me responde nada. (se me abre la página, me dice lo que tenga en html, pero no el resto).

Dicho de otra forma...
Si modifico la raiz de la web (la pongo una carpeta mas abajo, donde se encuentra la pagina "pagina.php", si que me imprime (pero ya no tenemos "ocultado" lo que quería). Si lo pongo normal, el código html si me lo lee bien, pero por ejemplo, el PHP lo ignora por completo.

Podríais ayudarme???

Un saludo y gracias de antemano!

Slimer

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa