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.
<Files ~ ".*\..*"> Order Allow,Deny Deny from all </Files> <FilesMatch "\.(jpg|jpeg|jpe|gif|png|bmp|tif|tiff|doc|pdf|rtf|xls|numbers|odt|pages|key|zip|rar|webp|mp3|mp4)$"> Order Deny,Allow Allow from all </FilesMatch>