Foros del Web » Creando para Internet » Diseño web »

[SOLUCIONADO] Evitar que cualquiera pueda abrir un archivo por el enlace

Estas en el tema de Evitar que cualquiera pueda abrir un archivo por el enlace en el foro de Diseño web en Foros del Web. Buenas, Mi problema es que estoy creando una web en la que los usuarios pueden subir archivos pdf para que los vean los demás usuarios ...
  #1 (permalink)  
Antiguo 20/08/2015, 16:11
 
Fecha de Ingreso: febrero-2015
Ubicación: Murcia
Mensajes: 29
Antigüedad: 9 años, 9 meses
Puntos: 0
Evitar que cualquiera pueda abrir un archivo por el enlace

Buenas,
Mi problema es que estoy creando una web en la que los usuarios pueden subir archivos pdf para que los vean los demás usuarios registrados y me he dado cuenta de que si uno de esos usuarios copia el enlace del archivo y se lo pasa a cualquier persona, esta puede abrirlo sin necesidad de estar registrado en la página.

Me gustaría saber si hay algun método para restringir el acceso a dichos archivos solo para los usuarios logueados.

Espero haberme explicado con claridad y muchas gracias de antemano

Edito: Los archivos subidos se guardan en carpetas en el servidor, no en la base de datos
  #2 (permalink)  
Antiguo 21/08/2015, 14:19
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 11 años, 2 meses
Puntos: 145
Respuesta: Evitar que cualquiera pueda abrir un archivo por el enlace

Quizá comprobando si el visitante está logueado o no, y si lo está, hacer un include o mostrar el PDF con Javascript o jQuery.

De todas formas, con un simple site:tusitio.com filetype:pdf podrían obtener prácticamente todos los archivos que tengas en el servidor.
__________________
¿Te sirvió la respuesta? Deja un +1
  #3 (permalink)  
Antiguo 22/08/2015, 21:57
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Evitar que cualquiera pueda abrir un archivo por el enlace

¿Cómo evitar el hotlinking?

No es nada difícil para el que tome conciencia de en qué consiste y el daño que le provoca.
Es posible evitarlo por completo si hosteas tu sitio en un servidor web que use Apache, en ese caso solo es necesario añadirle unas líneas de código a tu archivo ".htaccess".

Copia y pega el siguiente código al final del archivo .htaccess que puede abrirse con el Bloc de notas u otro editor de texto plano.

Código Apache:
Ver original
  1. RewriteEngine on
  2. RewriteCond %{HTTP_REFERER} !^http://sitio.com*/.*$ [NC]
  3. RewriteCond %{HTTP_REFERER} !^http://sitio.com*$ [NC]
  4. RewriteRule .*\.(jpg|jpeg|gif|png|bmp|zip)$ - [F,NC]
Sustituye solo "http://sitio.com" por la dirección URL de tu sitio web.

• NC nocase
El empleo de NC significa que la directiva Rewrite será aplicada de forma insensitiva (case-insensitive), es decir que no importa si los términos aparecen en minúsculas o mayúsculas.

• F forbidden.
Hace que se devuelva a la petición del cliente un mensaje de acceso denegado "403 Forbidden".
En este caso se bloquearán todos los accesos a cualquier archivo con las siguientes extensiones: jpg, jpeg, gif, png, bmp y zip.

Siempre que el que los solicite no provenga de una página de tu mismo sitio, se recibirá un mensaje de error 403 Acceso denegado.

Puedes incluir cualquier otro tipo de archivo que consideres.

FUENTE ORIGINAL

Yo uso eso en mi sitio y asi evito (en cierta medida) que descarguen archivos que no deseo, prueba a ver
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 23/08/2015, 04:41
 
Fecha de Ingreso: febrero-2015
Ubicación: Murcia
Mensajes: 29
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Evitar que cualquiera pueda abrir un archivo por el enlace

Muchas gracias xfxstudios, lo puse en mi sitio, y con unas modificaciones funcionó perfectamente

Etiquetas: enlace, página, todo
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 21:27.