Seguridad

Contactar con el profesor

En general, no es necesario instalar un plugin para mejorar la seguridad de wordpress. Basta actualizar con frecuencia, tener utilizar algo de sentido común y hacer algunas modificaciones en los ficheros .htaccess y wp-config.php

  • El nombre del usuario administrador no debe ser “admin”, que es el valor por defecto y creado en las instalaciones automáticas.
  • La contraseña de los usuarios debe ser segura.
  • Debemos eliminar los plugins que no usemos (no sólo desactivarlos), puesto que están subidos al ftp y pueden contener vulnerabilidades.
  • Instalar plugins fiables (en principio, que se actualicen con frecuencia, que tengan buena valoración proveniente de varios usuarios, etc.).
  • El prefijo de las bases de datos debe ser diferente de wp_, que es el prefijo estandar de todas tablas de wordpress del mundo, y esto permite al hacker tener una información valiosa sobre nuestra web.
  • Modificaciones en el .htaccess ubicado en la raíz de wordpress
# Bloqueamos acceso al directorio includes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

# Bloqueamos acceso a WP-CONFIG
<Files wp-config.php>
    Order Allow,Deny
    Deny from all
</Files>

#Sólo nuestra IP en el login
<Files wp-login.php>
    Order Allow,Deny
    Deny from all
    Allow from 127.0.0.1
</Files>

# Protegemos nuestros HTACCESS
<Files ~ “^.*\.([Hh][Tt][Aa])”>
    Order allow,deny
    Deny from all
    Satisfy all
</Files>


# Cerramos acceso a directorios de themes y plugins
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L]
RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

# No permitir ver los directorios
Options -Indexes

# Bloquear a los listillos que intentan descubrir vuestro author
RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* http://example.com/? [L,R=302]


# Deshabilitar el fichero xmlrpc.php. Ese fichero nos permite publicar remotamente a través de Microsoft Word, Textmate, Thunderbird, smartphones, entre otros clientes. También se encarga de pingbacks (enlaces de otros blogs a nuestros artículos) y enviar los trackbacks (enlaces de nuestro blog hacia artículos de otros blogs). Actualmente no se conocen vulnerabilidades de este fichero, pero hay muchos servicios que siguen atacando wordpress a través de él, lo cual puede derivar en una ralentización de la web. En principio, lo podemos borrar sin problemas ni remordimientos, o deshabilitar desde el .htaccess.
<Files xmlrpc.php>
 order allow,deny 
 deny from all 
</Files>
  • Permitir el acceso al admin de wordpress, pero sólo desde cierta IP (colocar un fichero .htaccess con este código en la raíz de la carpeta wp-admin):
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Access Control"
AuthType Basic
order deny,allow
Deny from all
allow from 127.0.0.1
allow from 127.0.0.2
...
  • Modificaciones en el fichero wp-config.php ubicado en la raíz.
/*Deshabilitamos la posibilidad de editar el código fuente
de WordPress desde el panel de administración de WordPress*/
define('DISALLOW_FILE_EDIT', true);
/*No queremos mostrar información de errores a ningún hacker*/
define('WP_DEBUG', false);
/*En caso de que el servidor tenga certificado de seguridad,
nos interesa utilizarlo para el login*/
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

Plugins de seguridad

  • Wordfence Security -> Plugin que cuenta de una opción genérica de seguridad que debería bastar para la mayoría de las webs.
  • Sucuri Security – Auditing, Malware Scanner and Security Hardening
← Optimización
Backups y migración →

Aviso Legal | Política de privacidad