cómo limitar el sistema de descarga de archivos a través del navegador sólo a través de mi aplicación web

StackOverflow https://stackoverflow.com/questions/1979268

Pregunta

necesito la mejor manera de prevenir cualquier acceso a archivos doc cuando no es mi aplicación web, por ejemplo, necesito algunos archivos que se oculta de los motores de búsqueda o usuarios públicos y solamente los usuarios privados pueden alcanzar y descargarlos.

Me gustaría guardar los archivos en el sistema de archivos y no en la base de datos con el fin de no aumentar el uso de DB.

¿Fue útil?

Solución

Puede almacenar sus archivos en el sistema de archivos, en un directorio que no se puede acceder a través de una URL (como un hermano de su directorio web raíz). Esto evitará el acceso directo.

A continuación, escribir un script PHP que, al ser preguntado para un determinado archivo, comprobará si el usuario puede acceder a ese archivo y enviarlo con readfile (junto con header para el tipo de contenido y la disposición de contenidos).

Otros consejos

Cuando dice "usuarios privados" Sólo estoy suponiendo que mediante estos usuarios se autentican alguna manera. Se podría almacenar estos archivos fuera del directorio web y, a continuación, sirven para arriba a través de PHP / Perl / Your_Favorite_Programming_language.

Un enlace podría conducir a un script que comprueba si el usuario es autenticado, si es así, servir el archivo arriba a través de la secuencia de comandos.

En php, después de la autenticación del usuario, que puede usar:

header('Content-disposition: attachment; filename=movie.mpg');
header('Content-type: video/mpeg');
readfile('/full/path/to/your/files/movie.mpg');

Sólo recuerde para hacer que fuera de su directorio web raíz, y para establecer los permisos para el mismo usuario que las secuencias de comandos se ejecutan como (nadie, en general, bajo Apache).

Robots.txt es una manera de bloquear / permitir que ciertas usuario HTTP agentes. No es la forma más segura sin embargo. Se podría utilizar la autenticación básica para que su aplicación web de inicio de sesión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top