Muy buenas a todos!

Hoy entraremos en un tema más técnico por su resolución, pero cotidiano por su uso.

Todos usamos a lo largo de nuestra carrera como programadores web, o usuarios web, lo que llamamos CMS (Content Management Sistem), que son softwares web adaptables o no, para crear webs dinámicas con inversiones bajas.

2 de los más comunes son WordPress y Joomla (wordpress cada vez más) por lo que hay que intentar incrementar la seguridad y evitar ataques de “hackers” o de cualquier persona que quiera malmeter.

El principal problema que presentan, es la seguridad de la parte de Administración (lugar desde donde se administra toda la web y su contenido), ya que es el objetivo de muchos de los ataques. Por ello hay que tratar de incrementar, en la medida de lo posible, su seguridad y sobretodo el acceso a que tiene cualquiera a esta parte.

Acceso a /administrator en Joomla


Logo JoomlaLa administración por defecto de Joomla es la carpeta www.nuestraweb.com/administrator
, así pues hay que proteger este directorio de posibles ataques. El sistema que utilizaremos es el basado en el archivo “.htaccess” y el uso de sesiones para controlar el acceso. Suena muy complicado pero en realidad son 3 pasos.

 

 

1- Crear directorio Personalizado:

Primero de todo hay que entrar vía FTP a la carpeta donde tengamos instalado Joomla, ya sea usando un cliente FTP como puede ser Filezilla, o a través del propio gestor de archivos de nuestro servidor. Una vez dentro crearemos una carpeta con el nombre que deseemos para que sea nuestra administración, en el ejemplo es “adminSecreto”:

Carpetas AdminSecreto

2- Crear Archivo index.php:

Una vez creada la carpeta procederemos a crear un documento que se llamará index.php y que tiene que contenerlo siguiente:

<?php
$admin_cookie_code=”XXXXXXXXXXX”;
setcookie(“JoomlaAdminSession”,$admin_cookie_code,0,”/”);
header(“Location: /administrator/index.php”);

?>

Este código crea una cookie en el equipo de sesión, para el acceso a la administración. Hay que substituir el apartado que pone “XXXXXXXXXXX” por letras y números al azar.
Este archivo lo tenemos que subir a la carpeta que hemos creado en el paso anterior.

3- Crear Archivo .htacces:

Por último en la carpeta administrator de nuestra web, crearemos un archivo nuevo que se llamará “.htaccess” con el siguiente contenido:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/administrator
RewriteCond %{HTTP_COOKIE} !JoomlaAdminSession=XXXXXXXXXXX
RewriteRule .* – [L,F]

Con este código lo que hacemos es restringir el acceso a aquellas personas que tienen en su ordenador una cookie con el valor de sesión que hemos creado antes, que era lo que en el paso anterior definimos en XXXXXXXXXXX.

 

Si ahora accedemos directamente a la carpeta www. nuestraweb .com/administrator de nuestra web nos saldrá un error del tipo:

Forbidden

En cambio si accedemos a www. nuestraweb .com/adminSecreto nos enviará directamente a la administración.

 

 

Acceso a /wp-login.php en WordPress:Logo WordPress

En el caso de WordPress el acceso es a través de www.nuestrositio.com/wp-login.php, así que hay que intentar proteger este archivo de posibles ataques como en el caso de Joomla.

Como no conozco otro método y este es el más sencillo y rápido, usaremos un archivo “.htaccess” como en el caso de joomla, pero la restricción será  la url de procedencia, que la decidiremos nosotros. O sea que si alguien entra directamente, o desde otra url, o google, o donde sea, no podrá acceder, sólo accederan los que proceden de una url concreta que nos inventaremos. 

En este caso también son 3 pasos.

1- Crear directorio Personalizado:

Es el mismo paso que en el caso de Joomla, entrar a nuestra web vía FTP o gestor de archivos y crear un directorio personalizado “adminSecreto” en nuestro caso.

2- Crear Archivo loquesea.php:

Una vez creada la carpeta procederemos a crear un documento que se llamará index.php y que tiene que contenerlo siguiente:

<a href=”http://www. nuestraweb .com/wp-login.php”>Acceso Administración</a>

Con esto lo que conseguiremos es que nos aparezca un enlace que en pulsar nos enviará a la administración.
Así pues introducimos un paso intermedio aleatorio (ya que lo decidimos nosotros) y dificultamos mucho el acceso a la administración de la web.

Enlace WordPress

3- Crear Archivo .htacces:

Por último en la carpeta de nuestra web, buscaremos el archivo “.htaccess” que viene con wordpress y añadiremos al final:

# protect wp-login.php 
<Files wp-login.php> 
Order deny,allow  RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://www.nuestraweb .com/carpetasecreta/archivosecreto.html$ [NC]
RewriteRule .* - [F]
</Files>

Esto esta diciendo a nuestro servidor que si alguien accede al archivo wp-login.php desde cualquier sitio que no sea la carpeta y el archivo que acabamos de crear, no le deje entrar.
Cómo veis, en 3 sencillos pasos hemos incrementado MUCHO la seguirdad de 2 de los sistemas que más se usan en la actualidad, y que nos ayudarán a que nuestras webs sean más seguras y evitemos sorpresas desagradables.

Otro día me gustaría tratar algun tema de seguridad más en web, si se os ocurre alguna sugerencia, no tengo miedo a nada!
Y como siempre digo, se aceptan críticas, comentarios, y saludos de cualquiera jeje
La semana que viene último artículo del año!

 

Saludos!

Kristian Muñoz Muñoz,
Programador web en Micromar Techni-web.

 

 



6 Comments

  1. Oscar Says Responder

    Interesante Cristian! como cada miércoles 🙂 Un tema que podrías tratar es el de URLs amigables o expresiones regulares, 2 temas jodidos en la programación web! :O

    Un Saludo!

    • Oscar Says Responder

      Por cierto, veo que la hora esta mal en tu servidor! Pone que son las 6 y en realidad son las 5 xD

      • Kristian Muñoz Muñoz
        retek2005 Says Responder

        jaja ahora lo cambio! 🙂
        Ya me miraré lo de las urls amigables, a ver qué le puedo sacar al tema…
        Es que como es tan técnico es difícil explicar algo ameno de leer..

        Merci! 😀

  2. Funo Says Responder

    Bon post com sempre Kitya!!
    A mi aixó del joomla per cambiar la ruta de l’administrator em funcionava, però ara no recordo quin component em petava per culpa d’aixó, i al final no vaig trobar cap solució per poder-ho fer… A veure si em ve el cap quin component era per tenir-ho en compte 😉

  3. Funo Says Responder

    Wei, per cert, el contactame et porta a la home!

Dejar un comentrario:

¿Eres humano? * Límite de tiempo se agote. Por favor, recargar el CAPTCHA por favor.