Denegar acceso a directorios de una página web

Se me presenta la siguiente situación.
Tengo una página web que ya esta publicada (Ya esta en internte), le llamaremos: www.misitio.com, la misma tiene ciertos boletines mensuales y archivos en pdf que las personas pueden descargar, los mismos están en dos carpetas diferentes: "pdfs" y "boletines".
Pero si una persona escribe directamente desde la barra de dirección de cualquier explorador de internet por ejemplo: www.misitio.com/pdfs lo deja ingresar a esa carpeta que tengo y puede ver todos los documentos, es decir al directorio.
Deseo eliminar ese acceso al directorio e igual para la carpeta "boletines", que bajo ninguna razón les permita ingresar a ese directorio, sino que ingresen por los diferentes links del index de mi página
Le agradezco me pueda orientar de como denegar ese acceso a los usuarios de mi página.
Un saludo desde Costa Rica y quedo a la espera de su amable ayuda.

4 respuestas

Respuesta
1
Para evitar el acceso, algunos proveedores permiten bloquear con una contraseña el acceso a ciertos directorios. Podría ser una solución, pero dependiente del proveedor del hosting.
Hay otra solución, no tan buena, pero más genérica:
Escribe una página index.htm y colócala en cada uno de los dos directorios.
Cuando intenten acceder al directorio PDF saldrá la página index.htm automáticamente, con un mensaje, por ejemplo, que diga 'directorio restringido'.
Respuesta
1
Pues puedes hacerlo de varias formas. Por ejemplo con directorios protegidos por contraseña. PEro la forma más sencilla es usando un index. Crea una página llamada index.html y usa alguno de los métodos de redireccionamiento. Recuerda que si decides usar el método con php tu archivo devera llamarse index.php y tu servidor debe soportar php.
Respuesta
1
Con este código que te pego ya tienes la solución, adáptalo a tu sitio y ya verás
un saludo
Código:
<?    
//comprobamos si el usuario esta autenticado
# funciones que comprueben variables de sesion y me dan la variable de usuario autenticado ok
if($usuario_correcto===true)
{
    // Enviaremos un PDF
    header('Content-type: application/pdf');
    // Se va a llamar descarga.pdf forzando la descarga
    header('Content-Disposition: attachment; filename="descarga.pdf"');
    // La fuente del PDF se encuentra en original.pdf
    // Este archivo estará guardado en una carpeta protegida desde http, solo accesible desde el servidor
    // El nombre original.pdf en verdad será el nombre del archivo original ya sea una variable o el recibido por GET
    readfile('ruta_carpeta_protegida/original.pdf');
}
else
{
    header('location: no_puedes_acceder.php');
}
?>
Respuesta
1
Tienes un problema de permisos.
Revisa los permisos de las carpetas. Dale en principio permiso de solo lectura para que no puedan navegar por la carpeta.
Luego prueba a acceder vía web y ver que la página web se ejecuta pero no accedes directamente a la carpeta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas