Un punto importante para una correcta configuración de WordPress es que los archivos y las carpetas tengan los permisos correctos. Al configurar adecuadamente las carpetas, podemos evitar que se ejecuten scripts en directorios donde no es necesario. Por ejemplo, la carpeta wp-content/uploads
no debería permitir la ejecución de archivos .php
para evitar que se ejecuten scripts maliciosos subidos por atacantes.
Configuraciones en archivos como .htaccess
y wp-config.php
pueden ayudar a proteger contra ataques como la inyección de SQL, cross-site scripting (XSS) y ejecución remota de código.
Permisos correctos
- Carpetas en
755 (drwxr-xr-x)
, propietario (usuario) puede leer, escribir y ejecutar; grupo y otros pueden leer y ejecutar, pero no pueden escribir. - Archivos en
644 (-rw-r--r--)
, propietario puede leer y escribir; grupo y otros solo pueden leer. - El archivo
wp-config.php
600 (-rw-------)
, propietario puede leer y escribir, grupo y otros no tienen ningún acceso. - El archivo
.htaccess
podría tener644
.
Cómo cambiar los permisos
Podes cambiar los permisos de las carpetas y los archivos de tres maneras distintas:
- Por FTP con una herramienta como Filezilla.
- Por SSH a través de la consola.
- A través del gestor de archivos del panel del servidor.
Podés ver más información sobre los permisos de archivos en Wikipedia.
Deshabilitar las listas de directorios
Cuando se escribe la dirección de una de las carpetas del sitio en el navegador, se mostrará el archivo llamado index.html
, si existe. Si no existe, se le mostrará una lista de archivos en esa carpeta. Esto se conoce como exploración de directorios y es algo que los atacantes pueden usar para conocer la existencia de ciertos archivos, robar información o saber versiones de las herramientas que estamos usando.
Para corregir esto podemos agregar al .htaccess
de la raíz la siguiente línea:
Options -Indexes
Evitar la ejecución de archivos en wp-uploads
Otra buena manera de mantener la configuración de nuestro servidor segura es deshabilitando la ejecución de archivos .php en directorios donde no es necesario, sobre todo en wp-uploads
. Esto podemos hacerlo directamente creando un archivo .htaccess con la siguientes líneas en esta carpeta o cualquier otra que consideremos:
<Files *.php>
deny from all
</Files>