Los mejores fragmentos de .htaccess para mejorar la seguridad de WordPress

Los mejores fragmentos de .htaccess para mejorar la seguridad de WordPress

La seguridad de WordPress es uno de los factores más debilitados entre los blogueros novatos. En una instalación de WordPress sin supervisión, muchas vulnerabilidades potenciales quedan desatendidas. La mayoría de los tutoriales de instalación de WordPress explican una forma rápida y fácil de implementar WordPress en minutos. Pero pasan por alto algunos factores de seguridad importantes. Por ejemplo, navegar por directorios y usar el nombre de usuario “admin” se consideran brechas de seguridad graves. Hoy vamos a echar un vistazo a 10 fragmentos de .htaccess que ayudarán a mejorar la seguridad de su blog de WordPress. Antes de comenzar, echemos un vistazo rápido a qué es el archivo htaccess.

¿Qué es el archivo .htaccess?

Un archivo htaccess es un archivo de configuración opcional que el servidor web Apache debe interpretar para cada directorio. Puede almacenar varias configuraciones en este archivo, como: proteger con contraseña un directorio, bloquear direcciones IP, bloquear un archivo o carpeta del acceso público, etc. Tradicionalmente, el archivo .htaccess está presente en el directorio de instalación base de WordPress. Almacena la estructura del enlace permanente de forma predeterminada.

TRUCO: Antes de comenzar el tutorial, asegúrese de hacer una copia de seguridad del archivo .htaccess actual (si corresponde) en un servicio de almacenamiento en la nube como Dropbox. Esto implica volver al último archivo .htaccess conocido en funcionamiento, si un fragmento de código determinado rompe su sitio. Empecemos.

1. Bloquea los robots maliciosos

malos robots

Uno de los mejores usos del archivo .htaccess es su capacidad para bloquear el acceso de varias direcciones IP a su sitio. Esto es útil para bloquear spammers conocidos y otras fuentes de acceso sospechoso o malicioso. El código es:

# Block one or more IP address.
# Replace IP_ADDRESS_* with the IP you want to block

<Limit GET POST>
order allow,deny
deny from IP_ADDRESS_1
deny from IP_ADDRESS_2
allow from all
</Limit>

Donde IP_ADDRESS_1 es la primera dirección IP que desea bloquear para que no acceda a su sitio. Puede agregar tantas direcciones IP como desee. Independientemente de los agentes de usuario (navegadores) utilizados por estas direcciones IP, no podrán acceder a un solo archivo de su servidor. El servidor web denegará automáticamente todos los accesos.

2. Desactive la navegación en el directorio.

wordpress htaccess hack deshabilitar la navegación de directorios

Este es uno de los agujeros de seguridad más plagados de un sitio de WordPress. De forma predeterminada, el servidor web Apache permite la exploración de directorios. Esto significa que todos los archivos y carpetas dentro del directorio raíz (a veces llamado directorio de inicio) del servidor web se pueden inscribir y el visitante puede acceder a ellos. No quiere eso porque no quiere que la gente navegue por sus descargas de medios o archivos de temas o complementos.

Si elijo al azar 10 sitios web personales o comerciales que ejecutan WordPress, la exploración de directorios no se desactivará para 6-8 de ellos. esto permite Ninguno oler fácilmente wp-content / uploads carpeta o cualquier otro directorio que no tenga el valor predeterminado index.php bajar ó dejar algo. En realidad, la captura de pantalla que ves es de uno de los sitios de mi cliente, antes de que recomendara la solución. Fragmento de código para deshabilitar la exploración de directorios:

# Disable directory browsing
Options All -Indexes

3. Permitir solo los archivos seleccionados de wp-content

shutterstock_108312266

Como sabes, el contenido de wp La carpeta contiene la mayoría de sus temas, complementos y todas las descargas de medios. Ciertamente no desea que la gente acceda a él sin restricciones. Además de deshabilitar la exploración de directorios, también puede denegar el acceso a todo tipo de archivos, excepto algunos. En esencia, puede desbloquear de forma selectiva archivos como JPG, PDF, DOCX, CSS, JS, etc. y rechazar el resto. Para hacer esto, pegue este fragmento de código en su archivo .htaccess:

# Disable access to all file types except the following
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$">
Allow from all
</Files>

Debe crear un nuevo archivo .htaccess con el código y pegarlo en el contenido de wp carpetas. No coloque esto en el directorio de instalación base; de ​​lo contrario, no funcionará. También puede agregar cualquier tipo de archivo a la lista agregando un “|” después de “rar”. La lista anterior contiene los archivos necesarios: XML, CSS y JavaScript, formatos de documentos e imágenes comunes y, finalmente, los formatos de archivo más utilizados.

4. Restringir todo acceso a wp-includes

shutterstock_135573032

los carpeta wp-includes contiene solo los archivos estrictamente necesarios para ejecutar la versión principal de WordPress, una sin complementos ni temas. Recuerde que el tema predeterminado siempre reside en el wp-content / theme directorio telefónico. Por lo tanto, ningún visitante (incluido usted) debería tener que acceder al contenido del wp-include carpetas. Puede inhabilitar el acceso utilizando este siguiente fragmento de código:

# Block wp-includes folder and files
<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>

5. Permitir que solo las direcciones IP seleccionadas accedan a wp-admin

shutterstock_140373169

los wp-admin La carpeta contiene los archivos necesarios para ejecutar el panel de WordPress. En la mayoría de los casos, sus visitantes no necesitan acceder al panel de WordPress a menos que quieran crear una cuenta. Una buena medida de seguridad es permitir que solo unas pocas direcciones IP seleccionadas accedan al wp-admin carpetas. Puede permitir las direcciones IP de las personas que necesitan acceder al panel de WordPress: editores, colaboradores y otros administradores. Este fragmento de código solo permite que las direcciones IP fijas accedan al wp-admin archivo y deniega el acceso al resto del mundo.

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 302.143.54.102
allow from IP_ADDRESS_2
</Limit>

Asegúrese de crear un nuevo archivo .htaccess y péguelo en la carpeta wp-admin y no en el directorio de instalación base. Si es lo último, nadie más que usted podrá navegar por su sitio, ¡ni siquiera los motores de búsqueda! Seguro que no quieres eso. A continuación se muestran algunas desventajas de esta medida:

  • Si su sitio permite o promueve Registro de un nuevo usuariosería casi imposible rastrear el número de usuarios. Por ejemplo, en WPExplorer, si desea descargar nuestros increíbles temas gratuitos, debe registrarse.
  • Personas con direcciones IP dinámicas (principalmente usuarios de banda ancha ADSL que utilizan protocolos PPP o PPPoE) ven sus direcciones IP cambiadas cada vez que se desconectan y se conectan a su ISP. Definitivamente no sería práctico realizar un seguimiento de todas estas direcciones IP y agregarlas al archivo htaccess.
  • Banda ancha móvil: Ya sea que esté en 3G o 4G, su dirección IP depende de la torre celular actual a la que está conectado. Supongamos que está viajando: su dirección IP cambiará constantemente con cada par de millas que se mueva desde el origen. Nuevamente, hacer un seguimiento del archivo htaccess es casi imposible.
  • Puntos de acceso Wi-Fi públicos: Usar credenciales cuando está conectado a Internet usando un punto de acceso público Wi-Fi es un gran no-no porque un niño con poco software puede extraer cualquier carácter que escriba. Sin mencionar que cada punto de acceso Wi-Fi tendrá una dirección IP única.

Afortunadamente, todos estos inconvenientes (excepto el primero) se pueden solucionar utilizando una VPN. Si configura su VPN para conectarse usando una única dirección IP, puede agregarla a su archivo htaccess y se resolverán todos sus problemas.

6. Proteja wp-config.php y .htaccess de todos

wordpress-ecommerce-security-shopping-tips

los wp-config.php El archivo contiene las credenciales de acceso más confidenciales para su sitio de WordPress. Contiene el nombre de la base de datos y las credenciales de acceso y varios otros datos críticos, entre otros parámetros. Bajo ninguna circunstancia desea que otras personas revisen este archivo. Y, por supuesto, desea deshabilitar el acceso público a la fuente de toda esta seguridad: la .htaccess archivo en sí. Puede desactivar el acceso a wp-config.php con este siguiente código:

# Deny access to wp-config.php file
<files wp-config.php>
order allow,deny
deny from all
</files>

Para denegar el acceso a todos los archivos htaccess (recuerde que algunos pueden residir en wp-admin y otras carpetas) use este fragmento de código:

# Deny access to all .htaccess files
<files ~ "^.*.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

7. Denegar el enlace de imagen directo

Enlace de imágen

Uno de los mejores hacks de archivos .htaccess, este envía raspadores de contenido con la cola entre las piernas. Cuando alguien usa la imagen de su sitio, su ancho de banda se consume y la mayoría de las veces ni siquiera se le acredita. Este fragmento de código elimina este problema y envía esta imagen cuando se detecta un enlace activo.

# Prevent image hotlinking script. Replace last URL with any image link you want.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourotherwebsite.com [NC]
RewriteRule .(jpg|jpeg|png|gif)$ http://i.imgur.com/MlQAH71.jpg [NC,R,L]

8. Habilite el almacenamiento en caché del navegador

lista de navegadores web

También conocido como almacenamiento en caché del lado del cliente, este truco .htaccess le permite habilitar las opciones recomendadas de almacenamiento en caché del navegador para su sitio de WordPress. También puede usarlo en otros proyectos: sitios HTML, etc.

# Setup browser caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>

9. Redirección a una página de mantenimiento

shutterstock_93288208

Cuando migra servidores web o realiza una tarea de mantenimiento, siempre se recomienda crear un archivo HTML estático “no disponible para mantenimiento” para que sus visitantes sepan que el sitio web se está actualizando o manteniendo. Simplemente cree un archivo maintenance.html (o cualquier nombre de archivo) y cárguelo en el directorio de instalación base de WordPress. Pegue el siguiente fragmento en su archivo .htaccess. Cuando se complete la operación, asegúrese de eliminar o comentar estas líneas para volver a la operación general. Puede comentar agregando un “#” al comienzo de cada línea.

# Redirect all traffic to maintenance.html file
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123.123.123.123
RewriteRule $ /maintenance.html [R=302,L] 

10. Páginas de error personalizadas

Modelo 404

También puede usar el archivo .htaccess para configurar páginas de error personalizadas fáciles de usar para errores como 403, 404 y 500. Una vez que haya preparado su página de error, diga error.html, cárguela en el instalador básico de WordPress de su directorio. Luego agregue el siguiente fragmento de código a su archivo .htaccess para habilitar la página de error personalizada:

# Custom error page for error 403, 404 and 500
ErrorDocument 404 /error.html
ErrorDocument 403 /error.html
ErrorDocument 500 /error.html

Conclusión:

Hoy aprendimos algunos de los mejores trucos de htaccess para fortalecer su sitio de WordPress. Le sugiero que pruebe cada módulo uno por uno mientras realiza una copia de seguridad del archivo .htaccess antes y después de probar cada módulo. Esto se debe a que el archivo .htaccess es muy importante. Falta un carácter ‘#’ o un ‘perdido podría destruir la integridad de su sitio. Si accede con frecuencia a su panel de WordPress mientras está en movimiento, se recomienda que no habilite direcciones IP selectivas en su wp-admin carpetas.

Es tu turno, ¿cuál es tu opinión sobre esta publicación? ¿Crees que vale la pena editar el archivo htaccess? ¿Conoce un consejo de seguridad mejor? Nos encantaría saber de ti.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir arriba