Después de ver muchas guías para hacer wordpress más seguro, analizar mis webs con muchas herramientas, y haber utilizado muchos módulos de seguridad, estoy empezando a utilizar unos archivos mínimos para hacer que wordpress sea más seguro.

Este código lo vamos a meter en nuestro archivo principal .htaccess, nos protege el archivo wp-config.php, el propio .htaccess, evita spam de comentarios y que nos hagan hotlinking.

IMPORTANTE: reemplazar en el código dominio.com por vuestro dominio.

<files wp-config.php>
order allow,deny
deny from all
</files>

<Files .htaccess>
order allow,deny
deny from all
</Files>

#hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?dominio.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

#spam comments
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*dominio.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http(s)?://%{REMOTE_ADDR}/$ [R=301,L]

Este código lo tendremos que meter en el archivo functions.php de nuestra plantilla.

add_action( 'send_headers', 'add_header_seguridad' );
function add_header_seguridad() {
	header( 'X-Content-Type-Options: nosniff' );
	header( 'X-Frame-Options: SAMEORIGIN' );
	header( 'X-XSS-Protection: 1;mode=block' );
}

Finalmente, crearemos un htaccess adicional en la carpeta /wp-content/uploads/ para permitir únicamente la ejecución de archivos multimedia, nada de ejecutar archivos PHP.

Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|ico)$">
Allow from all
</Files>