Restringir acceso a una carpeta pero permitir includes de php

Cuando hablamos de seguridad muchas veces no tenemos en cuenta que nuestras carpetas y archivos son todos accesibles desde internet. Nos centramos únicamente en la seguridad de la programación dejando el resto completamente descuidado. Vamos a ver como evitar que los usuarios puedan abrir los archivos de una carpeta y php pueda incluirlos.

Para esto lo primero que necesitaremos saber es qué tipo de servidor estamos utilizando, puesto que vamos a trabajar con .htaccess y esto es de apache. Por tanto si no tenemos este tipo de software de servidor no vamos a poder realizar este método con esta técnica. Si usamos apache vamos a ver lo fácil que es.

Bloquear carpeta para los usuarios y permitir a php incluir archivos

Podemos hacerlo mediante ftp, sftp o ssh, pero desde luego mi opción preferida para esto es por ssh, aunque es necesario tener control sobre el servidor, o al menos acceso permitido con un usuario a nuestro hospedaje. Son unos pasos simples que no nos llevarán más de un minuto realizar:

  1. Conectar por ssh
    Como hemos dicho puedes utilizar tu método preferido, aunque por ftp y sftp tienes que crear el archivo antes de conectarte para poder subirlo.
  2. Acceder a la carpeta
    Vamos a irnos hasta la carpeta que queremos proteger, por ejemplo:

    cd www/miweb/includes
  3. Creamos un archivo .htaccess
    Para crear un archivo ahora que estamos en la carpeta que queremos simplemente ejecutamos lo siguiente

    nano .htaccess

    podemos usar nuestro editor preferido como por ejemplo vi

  4. Añadimos la restricción
    Dentro de este archivo que acabamos de crear y tenemos abierto lo único que deberemos hacer es pegar la siguiente línea

    deny from all

    y ahora lo cerrarremos guardándolo
    ctrl+x luego y, o si es en español, ctrl+x luego s

Desde este momento si intentamos acceder con el navegador a esta carpeta nos va a soltar el error de forbidden, lo que no permitirá navegar a través del servidor web, pero si utilizamos los archivos de dentro de esa carpeta y subcarpetas como includes en php veremos que todo funciona perfectamente, dado que la restricción es para accesos externos.

Para conectarnos por ssh podemos utilizar un pequeño programita llamado putty, y si preferimos ftp o sftp podemos usar winscp, los dos gratuítos y para windows.

Léete también  key_buffer_size para mysql con 4gb, 8gb, 16gb, 32gb RAM

AYUDANOS a poder seguir dando respuestas. Te podemos echar una mano y tú también a nosotros, símplemente dale a me gusta.