Seguridad para WordPress sin Plugins para Proteger tu Web

Hola! Antes de nada, me gustaría agradecer a Bruno por darme la oportunidad de escribir mi primer post como invitado en esta web, gracias compañero 😉

Dicho esto, comenzamos con un tema del que poco se habla, cómo proteger nuestro WordPress de ataques sin plugins (recuerda hacer SIEMPRE copias de seguridad antes de realizar cualquier modificación en los archivos alojados en tu servidor).

Ya habrás podido leer, en otro post de esta web, cómo proteger nuestra web usando plugins de seguridad para WordPress. Aquí vamos a dar un paso más allá y hablaremos de cómo proteger tu web, evitado usar el menor número de plugins posibles por 2 motivos, entre otros:

  1. Reducir el tiempo de carga de nuestra web, evitando instalar plugins que suelen ser pesados y que no ayudan a mejorar el rendimiento del mismo.
  2. No depender de terceras personas para proteger nuestro negocio en Internet.

¿Hay peligro de ataques en WordPress?

WordPress es el CMS más usado a nivel mundial para crear páginas web. Para que nos hagamos una idea, aproximadamente el 30% de las webs que existen en Internet, están creadas con WordPress. ¿Qué significa esto? Que WordPress es un software muy popular y, es por esta razón, que está siempre en el punto de mira por aquellos que buscan hackear un sitio web.

Pese a que tiene una gran comunidad, formada por desarrolladores que colaboran para mejorar este CMS, y que trabajan siempre para mejorar la seguridad de WordPress, debemos tomar medidas para mejorar esa protección contra ataques o, al menos, ponerlo un poco más difícil.

Según la web de WordCamp, actualmente hay más de 75 millones de sitios que usan WordPress.

Las principales vías de acceso, suelen ser las siguientes:

  • Vulnerabilidades en la plataforma de alojamiento.
  • Temas vulnerables de WordPress.
  • Problemas de seguridad de los complementos de WordPress.
  • Información de inicio de sesión débil.

Saber esto nos da mucha información sobre cómo aumentar la seguridad de WordPress. En este artículo, aprenderás cómo proteger tu web y que este no se vea comprometido en ninguna de las formas de acceso mencionadas anteriormente.

Cambiar contraseña de acceso al panel de administración de WordPress

Cambiar la contraseña de acceso a nuestro WordPress, es una de las primeras medidas que hay que tomar para poder dificultar el acceso al BackEnd de nuestra web. Puedes hacerlo siguiendo los siguientes pasos:

  • Accede al panel de administración de tu WordPress.
  • Ve a “usuarios” y selecciona el usuario al que quieres cambiar la contraseña.
  • Guarda los cambios.

Puedes crear contraseñas aleatorias con este generador de contraseñas online.

Cambiar o Resetar la contraseña desde phpMyAdmin

  • Accedemos al Panel del Hosting (cPanel).
  • Desde el Administrador de Archivos en /public_html (o carpeta de la instalación de WordPress) localizamos el archivo wp-config.php.
  • Editamos el archivo wp-config.php y comprobamos cual es la base de datos en uso (si usamos varias en el Hosting).
  • Desde el Panel del Hosting accedemos al gestor de bases de datos phpMyAdmin.
  • Desde phpMyAdmin cargamos la base de datos en uso.
  • Localizamos la tabla wp_users.
  • Si existen varios usuarios en la columna user_login localizamos el user «admin».
  • Editamos dicho registro desde la opción «Editar» de dicho registro.
  • En la fila user_pass, columna «Función» establecemos desde el selector en MD5.
  • En la misma fila, columna «Valor» encontramos la actual contraseña encodeada en base64.
  • Seleccionamos dicho valor y lo eliminamos escribiendo el nuevo valor en texto plano.
  • Aplicamos los cambios pulsando en «Continuar».
  • Verificamos desde la url de nuestro WordPress que podemos acceder a la url http://www.dominio.com/wp-login.php.

Puedes crear contraseñas cifradas con este generador de contraseñas md5.

Cambiar la URL de acceso a wp-admin con .htaccess

Si eres un usuario avanzado o si estás creando una web para hacer pruebas, puedes cambiar el acceso a wp-admin desde el .htaccess disponible en el directorio de instalación de WordPress.

  1. Entramos en nuestro FTP y vamos al directorio donde se ha instalado WordPress y localizamos el archivo .htaccess. NOTA: Puede que el archivo esté oculto. Para verlo tendrás que cambiar en preferencias/configuración para que te permita ver archivos ocultos.
  2. Agrega la siguiente línea de código en el archivo:
  3. RewriteRule ^nombre-acceso$ https://dominio.com/wp-admin.php [NC,L]
  4. Sustituye nombre-acceso por la palabra que desee y la url dominio.com por tu dominio.
  5. Por último, tan solo debes guardar el archivo y volverlo a subir. Para acceder al panel de administración debes usar la ruta que has establecido en el archivo. En nuestro caso quedaría así: https://dominio.com/nombre-acceso.

¿Cómo proteger WordPress con .htaccess?

Normalmente, los archivos .htaccess funcionan para poner restricciones de seguridad a un sitio web ya que desde él, se pueden bloquear IPs desconocidas, bloquear bots y también modificar las direcciones para hacerlas más amigables y/o seguras.

¿Cómo proteger el archivo .htaccess?

El archivo .htaccess por defecto viene en cualquier instalación de WordPress es:

# 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

Para proteger el archivo .htaccess de nuestro WordPress, aquí os presentamos algunos ejemplos:

Protección sensible a mayúsculas y minúsculas

El archivo .htaccess es uno de los archivos más importantes y necesita protección. Usa el siguiente fragmento de código para asegurar este archivo.

Si utilizas Apache 2.2

# Protege .htaccess en Apache 2.2

<files ~ "^.*\.([Hh][Tt][Aa])">

order allow, deny

deny from all

satisfy all

</files>

Si utilizas Apache 2.4

# Protege .htaccess en Apache 2.4

<FilesMatch "^.*\.([Hh][Tt][Aa])">

Require all denied

</FilesMatch>

Coincidencia de patrones débiles

Este método es altamente efectivo para asegurar los archivos .htaccess de tu web. Además, esta técnica también incluye la Satisfy Alldirectiva » » fortificante . Ten en cuenta que este código debe colocarse en el archivo .htaccess raíz de tu dominio:

# FUERTE PROTECCION HTACCESS

<Files ~ "^.*\.([Hh][Tt][Aa])">

Order allow,deny

Deny from all

Satisfy all

</Files>

Códigos para proteger WordPress de ataques con .htaccess

Como te decía al principio de este artículo, asegúrate de realizar copias de seguridad de tu página web completa antes de hacer cualquier modificación en este archivo, ya que es muy delicado. asegúrese de realizar una copia de seguridad completa de tu sitio web antes de realizar

Para hacer modificaciones en el .htaccess, puedes usar el Panel de control de tu hosting o puedes usar un software de clientes FTP, para cargar tus archivos y sus cambios. Si usas el plugin Yoast SEO, puedes usar el editor de archivos incluido en este para hacer los cambios.

Protege tu archivo wp-config.php

Este es otro archivo extremadamente importante, así que asegúrate de incluir el siguiente código en tu archivo .htaccess:

# Protect wp-config.php

<files wp-config.php>

order allow,deny

deny from all

</files>

Protege el archivo error_log

Es importante asegurarse de que no se pueda acceder a los registros de errores.

#Protect error_log

<files error_log>

order allow,deny

deny from all

</files>

Protege tu área de administración de WordPress

Limita el acceso únicamente a las direcciones IP seleccionadas. Simplemente copia y pega este código en tu archivo .htaccess:

AuthUserFile /dev/null

AuthGroupFile /dev/null

AuthName "WordPress Admin Access Control"

AuthType Basic

<LIMIT GET>

order deny,allow

deny from all

# whitelist NombreUsuario IP address

allow from xx.xx.xx.xxx

# whitelist NombreUsuario IP address

allow from xx.xx.xx.xxx

</LIMIT>

Negar acceso durante una hora específica en el día

Si deseas bloquear el acceso a archivos en un directorio durante un momento específico en el día, agrega el siguiente código a tu archivo de .htaccess:

RewriteEngine On

# If the hour is 16 (4 PM)

RewriteCond %{TIME_HOUR} ^16$

# Then deny all access

RewriteRule ^.*$ - [F,L]

Si alguien visita el directorio a cualquier hora entre las 6:00 – 6:59 pm, se mostrará error 500. Tu puedes especificar múltiples horas también.

RewriteEngine On

# Multiple hour blocks

# If the hour is 6 PM or 7 PM or 8 AM

RewriteCond %{TIME_HOUR} ^17|18|19$

# Then deny all access

RewriteRule ^.*$ - [F,L]

Negar acceso a un dominio específico

Esto niega acceso a cualquiera que se conecte a tu web desde www.dominio.com. Si alguien hace click en un link en ejemplo.com que redireccione a tu sitio, se verá un error 403:

SetEnvIfNoCase Referer "dominio.com" bad_referer

Order Allow,Deny

Allow from ALL

Deny from env=bad_referer

Este ejemplo arroja un error 500 para cualquiera enlazando de dominio.com:

RewriteEngine on

RewriteCond %{HTTP_REFERER} dominio\.com [NC,OR]

RewriteRule .* - [F]

El siguiente ejemplo redirecciona a cualquier visitante conectando de dominio.com a google.com:

RewriteEngine On

RewriteCond %{HTTP_REFERER} ^http://dominio.com/

RewriteRule /* http://www.google.com [R,L]

Proteger con contraseña la carpeta de administrador de WordPress

Podemos usar el archivo .htaccess para agregar una protección de contraseña adicional en tu área de administración de WordPress.

Primero, debes generar un archivo .htpasswds. Puedes crear uno fácilmente utilizando este generador online.

Carga este archivo .htpasswds fuera de tu directorio web de acceso público o carpeta /public_html/. Por ejemplo:

/home/user/.htpasswds/public_html/wp-admin/passwd/

Después, crea un archivo .htaccess y cárgalo en el directorio /wp-admin/ y luego agregue los siguientes códigos:

AuthName "Admins Only"

AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd

AuthGroupFile /dev/null

AuthType basic

require user putyourusernamehere

<Files admin-ajax.php>

Order allow,deny

Allow from all

Satisfy any 

</Files>

Importante: No olvides reemplazar la ruta AuthUserFile con la ruta del archivo .htpasswds y agrega tu propio nombre de usuario.

Protege tu sitio web de WordPress de la inyección SQL

Esto proporciona protección contra la inyección SQL de tu base de datos de WordPress.

#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]

Restringe el acceso directo a los archivos PHP de plugins y temas

Esto asegurará que no se pueda acceder directamente a los archivos PHP.

# Restrict Direct Access to Plugin and Theme PHP files

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]

Asegura el directorio wp-includes

Esta carpeta es importante. Protégelo con el fragmento de código a continuación.

# Protect Include-Only 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>

Bloquear escaneos a las listas de autores

A veces, los hackers intentarán escanear tus listas de autores. Bloquéalo así:

# BEGIN block author scans

RewriteEngine On

RewriteBase /

RewriteCond %{QUERY_STRING} (author=\d+) [NC]

RewriteRule .* - [F]

# END block author scans

Previene la navegación de directorios

# Previene listado de directorios

Options All -Indexes

Previene el Hotlinking a tus imágenes

Cómo evitar el hotlinking de tus imágenes y archivos, para que otros no se aprovechen de tus recursos.

# Previene hotlinking de imágenes

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?dominio.com [NC]

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]

RewriteRule \.(jpg|jpeg|png|gif)$ https://dominio.com/imagen-alternativa.png [NC,R,L]

Archivos seguros de plugins de WordPress

El siguiente código evitará que otros tengan acceso a los archivos de complemento:

<files ~ ".(js|css)$"="&”.(js|css)$&">

order allow,deny

allow from all

</files>

Bloquear solicitudes XMLRPC de WordPress

Si no está utilizando esta función, bloquéela.

# Block WordPress xmlrpc.php requests

<files xmlrpc.php>

order deny,allow

deny from all

</files>

Prevenir entrada por la puerta de atrás en PHP

Si utilizas Apache 2.2

# Protección contra backdoors en Apache 2.2

<Files *.php>

deny from all

</Files>

Si utilizas Apache 2.2

# Protección contra backdoors en Apache 2.4

<FilesMatch ".+\.php$">

Require all denied

</FilesMatch>

Prevenir SPAM en los comentarios

RewriteEngine On

RewriteCond %{REQUEST_METHOD} POST

RewriteCond %{REQUEST_URI} .wp-comments-post.php*

RewriteCond %{HTTP_REFERER} !.*tudominio.com.* [OR]

RewriteCond %{HTTP_USER_AGENT} ^$

RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]

Firewall 6G / Lista negra

Este script protege el ancho de banda y los recursos del servidor de cualquier sitio web con tecnología Apache, mientras protege contra la actividad maliciosa.

Solución de problemas

Si encuentras errores o no carga los recursos después de instalar 6G Firewall, elimina todo el bloque de código y restaure el archivo original .htaccess.

Error del Servidor

Si obtienes un error de servidor después de instalar 6G Firewall, comprueba que tu sitio cumple con los requisitos.

# 6G:[QUERY STRINGS]

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{QUERY_STRING} (eval\() [NC,OR]

RewriteCond %{QUERY_STRING} (127\.0\.0\.1) [NC,OR]

RewriteCond %{QUERY_STRING} ([a-z0-9]{2000,}) [NC,OR]

RewriteCond %{QUERY_STRING} (javascript:)(.*)(;) [NC,OR]

RewriteCond %{QUERY_STRING} (base64_encode)(.*)(\() [NC,OR]

RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|\[|%) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C)(.*)script(.*)(>|%3) [NC,OR]

RewriteCond %{QUERY_STRING} (\\|\.\.\.|\.\./|~|`|<|>|\|) [NC,OR]

RewriteCond %{QUERY_STRING} (boot\.ini|etc/passwd|self/environ) [NC,OR]

RewriteCond %{QUERY_STRING} (thumbs?(_editor|open)?|tim(thumb)?)\.php [NC,OR]

RewriteCond %{QUERY_STRING} (\'|\")(.*)(drop|insert|md5|select|union) [NC]

RewriteRule .* - [F]

</IfModule>

# 6G:[REQUEST METHOD]

<IfModule mod_rewrite.c>

RewriteCond %{REQUEST_METHOD} ^(connect|debug|move|put|trace|track) [NC]

RewriteRule .* - [F]

</IfModule>

# 6G:[REFERRERS]

<IfModule mod_rewrite.c>

RewriteCond %{HTTP_REFERER} ([a-z0-9]{2000,}) [NC,OR]

RewriteCond %{HTTP_REFERER} (semalt.com|todaperfeita) [NC]

RewriteRule .* - [F]

</IfModule>

# 6G:[REQUEST STRINGS]

<IfModule mod_alias.c>

RedirectMatch 403 (?i)([a-z0-9]{2000,})

RedirectMatch 403 (?i)(https?|ftp|php):/

RedirectMatch 403 (?i)(base64_encode)(.*)(\()

RedirectMatch 403 (?i)(=\\\'|=\\%27|/\\\'/?)\.

RedirectMatch 403 (?i)/(\$(\&)?|\*|\"|\.|,|&|&amp;?)/?$

RedirectMatch 403 (?i)(\{0\}|\(/\(|\.\.\.|\+\+\+|\\\"\\\")

RedirectMatch 403 (?i)(~|`|<|>|:|;|,|%|\\|\s|\{|\}|\[|\]|\|)

RedirectMatch 403 (?i)/(=|\$&|_mm|cgi-|etc/passwd|muieblack)

RedirectMatch 403 (?i)(&pws=0|_vti_|\(null\)|\{\$itemURL\}|echo(.*)kae|etc/passwd|eval\(|self/environ)

RedirectMatch 403 (?i)\.(aspx?|bash|bak?|cfg|cgi|dll|exe|git|hg|ini|jsp|log|mdb|out|sql|svn|swp|tar|rar|rdf)$

RedirectMatch 403 (?i)/(^$|(wp-)?config|mobiquo|phpinfo|shell|sqlpatch|thumb|thumb_editor|thumbopen|timthumb|webshell)\.php

</IfModule>

# 6G:[USER AGENTS]

<IfModule mod_setenvif.c>

SetEnvIfNoCase User-Agent ([a-z0-9]{2000,}) bad_bot

SetEnvIfNoCase User-Agent (archive.org|binlar|casper|checkpriv|choppy|clshttp|cmsworld|diavol|dotbot|extract|feedfinder|flicky|g00g1e|harvest|heritrix|httrack|kmccrew|loader|miner|nikto|nutch|planetwork|postrank|purebot|pycurl|python|seekerspider|siclab|skygrid|sqlmap|sucker|turnit|vikspider|winhttp|xxxyy|youda|zmeu|zune) bad_bot

# Apache < 2.3

<IfModule !mod_authz_core.c>

Order Allow,Deny

Allow from all

Deny from env=bad_bot

</IfModule>

# Apache >= 2.3

<IfModule mod_authz_core.c>

<RequireAll>

Require all Granted

Require not env bad_bot

</RequireAll>

</IfModule>

</IfModule>

# 6G:[BAD IPS]

<Limit GET HEAD OPTIONS POST PUT>

Order Allow,Deny

Allow from All

# uncomment/edit/repeat next line to block IPs

# Deny from 123.456.789

</Limit>

HackRepairs Blacklist

Esta es una lista negra que se usa en iThemes Security y creada por HackRepair.

# Start HackRepair.com Blacklist

RewriteEngine on

# Start Abuse Agent Blocking

RewriteCond %{HTTP_USER_AGENT} "^Mozilla.*Indy" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Mozilla.*NEWT" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^$" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Maxthon$" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^SeaMonkey$" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Acunetix" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^binlar" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^BlackWidow" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Bolt 0" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^BOT for JCE" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Bot mailto\:craftbot@yahoo\.com" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^casper" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^checkprivacy" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^ChinaClaw" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^clshttp" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^cmsworldmap" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Custo" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Default Browser 0" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^diavol" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^DIIbot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^DISCo" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^dotbot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Download Demon" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^eCatch" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^EirGrabber" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^EmailCollector" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^EmailSiphon" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^EmailWolf" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Express WebPictures" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^extract" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^ExtractorPro" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^EyeNetIE" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^feedfinder" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^FHscan" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^FlashGet" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^flicky" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^g00g1e" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^GetRight" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^GetWeb\!" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Go\!Zilla" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Go\-Ahead\-Got\-It" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^grab" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^GrabNet" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Grafula" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^harvest" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^HMView" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Image Stripper" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Image Sucker" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^InterGET" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Internet Ninja" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^InternetSeer\.com" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^jakarta" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Java" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^JetCar" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^JOC Web Spider" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^kanagawa" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^kmccrew" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^larbin" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^LeechFTP" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^libwww" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Mass Downloader" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^microsoft\.url" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^MIDown tool" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^miner" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Mister PiX" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^MSFrontPage" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Navroad" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^NearSite" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Net Vampire" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^NetAnts" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^NetSpider" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^NetZIP" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^nutch" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Octopus" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Offline Explorer" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Offline Navigator" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^PageGrabber" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Papa Foto" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^pavuk" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^pcBrowser" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^PeoplePal" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^planetwork" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^psbot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^purebot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^pycurl" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^RealDownload" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^ReGet" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Rippers 0" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^sitecheck\.internetseer\.com" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^SiteSnagger" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^skygrid" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^SmartDownload" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^sucker" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^SuperBot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^SuperHTTP" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Surfbot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^tAkeOut" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Teleport Pro" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Toata dragostea mea pentru diavola" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^turnit" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^vikspider" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^VoidEYE" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Web Image Collector" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebAuto" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebBandit" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebCopier" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebFetch" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebGo IS" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebLeacher" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebReaper" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebSauger" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Website eXtractor" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Website Quester" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebStripper" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebWhacker" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WebZIP" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Widow" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WPScan" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WWW\-Mechanize" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^WWWOFFLE" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Xaldon WebSpider" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^Zeus" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "^zmeu" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "360Spider" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "CazoodleBot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "discobot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "EasouSpider" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "ecxi" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "GT\:\:WWW" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "heritrix" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "HTTP\:\:Lite" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "HTTrack" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "ia_archiver" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "id\-search" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "IDBot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "Indy Library" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "IRLbot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "ISC Systems iRc Search 2\.1" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "LinksCrawler" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "LinksManager\.com_bot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "linkwalker" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "lwp\-trivial" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "MFC_Tear_Sample" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "Microsoft URL Control" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "Missigua Locator" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "MJ12bot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "panscient\.com" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "PECL\:\:HTTP" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "PHPCrawl" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "PleaseCrawl" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "SBIder" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "SearchmetricsBot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "SeznamBot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "Snoopy" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "Steeler" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "URI\:\:Fetch" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "urllib" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "Web Sucker" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "webalta" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "WebCollage" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "Wells Search II" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "WEP Search" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "XoviBot" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "YisouSpider" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "zermelo" [NC,OR]

RewriteCond %{HTTP_USER_AGENT} "ZyBorg" [NC,OR]

# End Abuse Agent Blocking

# Start Abuse HTTP Referrer Blocking

RewriteCond %{HTTP_REFERER} "^https?://(?:[^/]+\.)?semalt\.com" [NC,OR]

RewriteCond %{HTTP_REFERER} "^https?://(?:[^/]+\.)?kambasoft\.com" [NC,OR]

RewriteCond %{HTTP_REFERER} "^https?://(?:[^/]+\.)?savetubevideo\.com" [NC]

# End Abuse HTTP Referrer Blocking

RewriteRule ^.* - [F,L]

# End HackRepair.com Blacklist

Conclusión

Con estos códigos, esperamos ayudarte a mejorar la protección de tu web creada con WordPress.

Recuerda siempre hacer una copia de seguridad de tu archivo .htaccess antes de realizar cualquier cambio en este.

Seguramente, hay más códigos para poder proteger tu web. Y tú ¿Conoces algún código que te haya servido para proteger WordPress?

¿Necesitas Hosting para WordPress de Calidad?
Yo ya estoy migrando todo ➡️ Raiola Nework (20 % de descuento)
Muy veloces, optimizados y con un soporte incomparable (comprobado).

Escrito por

Artículos relacionados

10 Comentarios

  1. Gabriela
    23 septiembre, 2019
  2. Diseño web Sevilla
    27 octubre, 2019
  3. Eduardo
    22 noviembre, 2019
  4. César
    12 diciembre, 2019
  5. Ximo
    3 enero, 2020
  6. Cristina
    4 abril, 2020
  7. Ivan
    21 abril, 2020
  8. R. Jaén
    4 mayo, 2020
  9. Adriee J
    18 agosto, 2021
  10. Eduardo
    27 noviembre, 2022

Comenta el artículo

Acepto la política de privacidad *

Responsable: Bruno Ramos Lara.
Finalidad: Gestión y moderación de comentarios.
Legitimación: Tu consentimiento.
Destinatarios: No se ceden datos, todo queda registrado en esta web.
Derechos: acceder, rectificar, limitar y suprimir tus datos.


¡Suscríbete!

Responsable: Bruno Ramos Lara.
Finalidad: Envío de boletines informativos.
Legitimación: Tu consentimiento.
Destinatarios: Tus datos se guardan en Acumbamail, proveedor de email marketing de seoh1.com cuyos servidores se encuentran en España y cumple todos los requisitos de la RGPD.
Derechos: Acceder, rectificar, limitar y suprimir tus datos.