Hosting en inglés

Namecheap.com

Registro de dominios

Hosting SSD Wordpress

10 medidas para mejorar seguridad de WordPress

Medidas de seguridad para WordPress

La seguridad de un sitio web siempre es un tema importante al cual sino le prestamos atención puede dar al traste con meses e incluso años de trabajo. Esto es más importante incluso para aquellos que tienen en la Internet la base de su negocio. Por esta razón, en este artículo vamos a mostrar algunas medidas particularmete útiles para proteger nuestro blog en WordPress.

1. Evite que sea desplegada información innecesaria.

Normalmente, cuando queremos entrar en nuestro blog de WordPress y el ingreso falla debido a que escribimos mal nuestro nombre de usuario o clave de acceso o por cualquier otra razón, este CMS muestra algo de información diciendonos que ha salido mal. Esto es útil si hemos olvidado nuestra clave, pero también puede resultar beneficioso para aquellos que buscan hackear nuestro blog. Por lo tanto, la solución es evitar que WordPress muestre mensajes de error durante los intentos fallidos de ingreso.

Medida correctiva

Para remover los mensajes de error, simplemente debemos abrir el archivo funtions.php de la plantilla de nuestro blog y colocar el siguiente código:

add_filter('login_errors',create_function('$a', "return null;"));

Después de añadir el código, salvamos  el archivo y comprobamos el resultado final: no más mensajes son mostrados cuando un intento de ingreso falla.

Noten que existen varios archivos funtions.php, por lo tanto tengan cuidado con lo que van a modificar. Asegurense de cambiar el que se encuentra en el directorio wp-content.

Con este código, lo que hacemos es añadir una modificación que permite sobreescribir la función loging_errors(). Debido a que la función modificada que hemos creado produce un valor nulo, el mensaje desplegado estará completamente en blanco.

2. Implementar el SSL

Si nos preocupa que nuestros datos sean interceptados, definitivamente deberíamos emplear el SSL. En caso de que no sepan que es esto, el SSL es un protocolo criptográfico que asegura las comunicaciones en redes como la Internet. Muchos no lo saben, pero es posible forzar a WordPress a que use el SSL. No todos los servicios de web hosting permiten el uso de SSL, sin embargo si su blog está alojado en Hostgator o Wp WebHost, entonces el SSL está activado.

Medida correctiva

Después de que hemos chequeado que nuestro proveedor de web hosting permite el SSL, simplemente debemos abrir el archivo wp-config.php (localizado en la raiz de la instalación de WordPress) y añadir el siguiente código:


define('FORCE_SSL_ADMIN', true);

Seguidamente salvamos el archivo y listo.

WordPress emplea una gran cantidad de constantes para configurar el software. En este caso, simplemente definimos la constante FORCE_SSL_ADMIN y establecemos su valor en true. Con esto, a partir de este momento nuestro blog de WordPress utilizará el SSL.

3. Usar el .htaccess para proteger el archivo wp-config

Todo usuario de Worpress con algo de experiencia sabe de la importancia del archivo wp-config.php, el cual contiene toda la información requerida para acceder a las bases de datos: nombre de usuario, clave, nombre del servidor y otros. Por lo tanto, proteger el wp-config.php es crítico, y para este fin puede resultar de gran utilidad Apache.

Medida correctiva

El archivo .htaccess se localiza en la raíz de nuestra instalación de WordPress. Después de crear un backup del archivo (debido a su importancia es recomendable tener un respaldo en caso de que ocurra algún problema con el original), lo abrimos y añadimos el siguiente código:


<files wp-config.php>

order allow,deny

deny from all
</files>

El archivo.htaccess es una de las más poderosas y mejores herramientas para prevenir el acceso no deseado a nuestros archivos. En este código, lo que hicimos fue crear una regla que evita cualquier acceso al archivo wp-admin.php, lo que asegura que ningún bot perjudicial pueda acceder a él.

4. Evitar el acceso de usuarios y bots indeseados

Una realidad triste pero cierta en la Internet es que aquel que ha intentado vulnerar nuestro sitio probablemente va a seguir tratando de hacerlo hasta conseguirlo. Probablemente todos los que usan WordPress han notado esos molestos spam bots que regresan a nuestro blog unas 10 veces al día para ingresar esos comentarios que nos sacan de las casillas. La solución al problema es simple: impedir el acceso a nuestro blog.

Medida correctiva

Lo primero que debemos hacer es pegar el siguiente código en el archivo .htaccess. Como indiqué anteriormente, siempre hay que hacer un respaldo de este archivo antes de editarlo. En este código no olviden cambiar el 123.456.789 por la dirección IP cuyo acceso desean evitar.


<Limit GET POST PUT>

order allow,deny
allow from all
deny from 123.456.789

</LIMIT>

Apache es una poderosa herramienta que puede ser empleada con facilidad para evitar que personas y bots indeseados  tengan acceso a nuestro blog. Con este código, le decimos a Apache que cualquiera tiene permiso de visitar nuestro sitio excepto por la persona cuya dirección IP es 123.456.789.

Para prohibir el acceso a más personas, simplemente repita la línea 4 del código en una nueva línea, empleando otra dirección IP como se muestra a continuación:

<Limit GET POST PUT>

order allow,deny
allow from all

deny from 123.456.789

deny from 93.121.788

deny from 223.956.789

deny from 128.456.780

</LIMIT>

5. Proteger el blog de WordPress de inyecciones de scripts

Proteger las websites dinánicas es especialmente importante. Muchos desarrolladores siempre protegen sus GET y POST requests, sin embargo en ocasiones esto no es suficiente. Por eso, deberíamos proteger nuestro blog en contra de inyecciones de scripts y de cualquier intento de modificar las variables PHP GLOBALS y _REQUEST.

Medida correctiva

El siguiente código bloquea inyecciones de scripts y cualquier intento de modificar las variables PHP GLOBALS y _REQUEST. Para esto añadan en el archivo htaccess el siguiente código:


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]

Al emplear el poder del archivo htaccess, podemos chequear los requests. En este caso lo que hemos hecho con el código es indicar que compruebe en cada request  si contiene un <script> y si ha tratado de modificar el valor de las variables PHP GLOBALS o _REQUEST. Si cualquiera de estas condiciones se cumple, el request es bloqueado y aparece un error 403 en el buscador del usuario que lo envió.

6. Combatir a los ladrones de contenido

Si tenemos un blog algo conocido y con cierto posicionamiento, mucha gente no dudará un segundo en tratar de usar nuestro contenido en sus sitios sin ningún consentimiento. Uno de los mayores problemas en este aspecto es el hot-linking a nuestras imágenes, lo cual puede llegar a consumir un importante porcentaje de nuestro ancho de banda.

Medida correctiva

Para proteger nuestro blog del hot-linking y el robo de contenido, debemos añador el siguiente código en el archivo .htaccess:

RewriteEngine On
#Replace ?mysite\.com/ with your blog url

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]

RewriteCond %{HTTP_REFERER} !^$

#Replace /images/nohotlink.jpg with your "don't hotlink" image url

RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Una vez que hayamos salvado el archivo, solo nuestro sitio será capaz de enlazar las imágenes de este, o para ser más claros, nadie más podrá enlazar estás imágenes debido a que sería demasiado complicado y consumiría demasiado tiempo. Otros sitios despliegan automaticamente la imagen nohotlink.jpg. También podemos especificar una imagen no existente, con lo cual los sitios que traten de hacer hot-link al nuestro unicamente mostrarán un espacio en blanco.

Con este código, la primera cosa que hemos hecho es chequear el referente con el fin de comprobar si coincide con la URL de nuestro blog y que no está vacío. En caso de que la condición no se cumpla y el archivo tiene una extensión BMP, JPG, GIF o PNG, entonces la imagen nohotlink es desplegada en su lugar.

7. Crear un plug-in para proteger nuestro blog de URL Request maliciosas.

Muchos hackers y malhechores usualmente emplean queries maliciosos para encontrar y atacar los puntos débiles de los blogs. WordPress cuenta con una buena protección por defecto, pero siempre es posible mejorarla.

Medida correctiva

Añadan el siguiente código en un archivo de texto y salvenlo como blockbadqueries.php. Posteriormente, el archivo al directorio your wp-content/plugins y activenlo de la misma manera que harían con otro plug-in. Con esta simple medida, ahora su blog está protegido en contra de queries maliciosos.

<?php

/*

Plugin Name: Block Bad Queries

Description: Protect WordPress Against Malicious URL Requests

Author: Perishable Press

Version: 1.0

*/


global $user_ID;


if($user_ID) {

  if(!current_user_can('level_10')) {

    if (strlen($_SERVER['REQUEST_URI']) > 255 ||

      strpos($_SERVER['REQUEST_URI'], "eval(") ||

      strpos($_SERVER['REQUEST_URI'], "CONCAT") ||

      strpos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||

      strpos($_SERVER['REQUEST_URI'], "base64")) {

        @header("HTTP/1.1 414 Request-URI Too Long");

    @header("Status: 414 Request-URI Too Long");

    @header("Connection: Close");

    @exit;

    }

  }

}

?>

Lo que este código hace es bastante simple. Básicamente lo que hace es chequear en busca de cadenas excesivamente largas (más de 255 caracteres) en los requests y por la presencia de funciones PHP eval o base64 en el URI. Si una de estas condiciones se cumple, entonces el plug-in envía un error 414 al navegador del usuario que envió el request.

8. Remover el número de versión del WordPress

Como probablemente sepan, WordPress automaticamente despliega la versión que estamos usando en nuestro blog directamente en la cabecera de los archivos del sitio.  Esto puede resultar bastante dañino si nuestro blog está siempre actualizado con la última versión (lo cual en sí es una buena práctica). Pero, si por alguna razón el blog no está actualizado, WordPress aún así muestra la información y los hackers pueden de esta manera conocer esta pieza vital de información

Medida correctiva

Debemos añadir el siguiente código en el archivo functions.php de la plantilla de nuestro sitio Seguidamente salven y  recarguen su blog con lo cual dejará de aparecer el número de la versión de WordPress en el header.


remove_action('wp_head', 'wp_generator');

Para ejecutar ciertas acciones. WordPress emplea un mecanismo conocido como “hooks”, los cuáles permiten enlazar una función con otra. La función wp_generator, que despliega la versión de WordPress está enlazada. Este hook podemos removerlo y evitar que se ejecute usando la función remove_action().

9. Cambiar el usuario por defecto “Admin”

Por medio de simple fuerza bruta es posible violar una clave de acceso. El método es simple y consiste en probar tantas combinaciones de claves como sea posible hasta encontrar la correcta. Los hackers que emplean la fuerza bruta emplean diccionarios, los cuáles les brindan una gran cantidad de combinaciones de claves. Sin embargo, el conocer nuestro nombre de usuario ciertamente les hará más fácil la tarea de encontrar la combinación correcta. Es por esto que debemos cambiar el nombre de usuario por defecto “admin” por uno más dificil de adivinar.

WordPress 3++ nos permite escoger nuestro nombre de usuario deseado, por lo tanto este consejo es útil si aún empleamos la vieja cuenta “admin” de versiones anteriores de WordPress.

Medida correctiva
Si no hemos cambiado el nombre de usuario “admin”, lo que tenemos que hacer es correr el siguiente SQL query en nuestra base de datos para cambiarlo por uno más adecuado. No debemos olvidar el especificar nuestro nombre de usuario deseado.


UPDATE wp_users SET user_login = 'Your New Username' WHERE user_login = 'Admin';

El nombre de usuario se almacena en la base de datos. Para cambiarlo, un simple UPDATE query es más que suficiente. Noten que esta query no va a transferir los posts escritos por “admin” a su nuevo nombre de usuario.

 

10. Prevenir el browsing de directorios

De forma predeterminada, la mayoría de los webhosting permiten el listado de directorios. Por lo tanto, si escribimos en la barra de direcciones del navegador  www.yourblog.com/wp-includes, podremos observar todos los archivos en ese directorio. Este es por supuesto un tremendo riesgo de seguridad, ya que un hacker podría ver la última vez  en que fueron modificados archivos de nuestro blog lo que le permitiría tener acceso a estos.

Medida correctiva
Para evitar esto, debemos añadir lo siguiente a la configuración de Apache en el archivo .htaccess:

1 Options -Indexes

En este caso hay que tomar en cuenta que no es suficiente actualizar el archivo robots.txt del blog con Disallow: /wp*. Esto previene que el wp-directory sea indexado, pero no sirve para evitar que los usuarios puedan verlo que es precisamente lo que no queremos..

 


SUSCRÍBETE SIN COSTO ALGUNO A NUESTRO BOLETÍN

Escribe tú correo electrónico:

Recibe contenido de este sitio sin costo alguno en tu e-mail. Solamente enviaremos los últimos artículos de Internetrcc, sin ningún tipo de spam

Web hosting recomendado

alojamiento wordpress

Deja un comentario