Lo primero: ¿Qué es el fichero .htaccess?
«Un fichero .htaccess es un fichero especial, popularizado por el Servidor HTTP Apache que permite definir diferentes directivas de configuración para cada directorio (con sus respectivos subdirectorios) sin necesidad de editar el archivo de configuración principal de Apache». Wikipedia
El fichero .htaccess de wordpress suele tener esta pinta cuando usamos permalinks con mod_rewrite:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Bien, pues justo antes de estas lineas añadimos lo siguiente (OJO: Haz backup de tu archivo .htaccess por si hay algun problema):
Para reducir el spam en nuestro blog (impedimos que los robots de spam accedan a wp-comments-post.php). Acuerdate de cambiar tunombrededominio por el nombre real sin www o similares (Fuente wordpress):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*tunombrededominio.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>
Protegemos nuestro fichero de .htaccess de miradas no deseadas:
# STRONG HTACCESS PROTECTION</code>
<Files ~ «^.*\.([Hh][Tt][Aa])»>
order allow,deny
deny from all
satisfy all
</Files>
Protegemos nuestros directorios. Impedimos que se puedan listar en el navegador:
# disable directory browsing
Options All -Indexes
Protegemos de miradas indiscretas nuestro archivo de configuración de wordpress:
# protect wp-config.php
<files wp-config.php>
Order deny,allow
Deny from all
</files>
Impedimos que nos inyecten codigo en nuestro blog mediantes scripts (impedimos modificaciones de _REQUEST y GLOBALS):
# protect from sql injection
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
Deja una respuesta Cancelar la respuesta