Fondo código

Protege tu web con un buen .htaccess

Garantizar la disponibilidad e integridad de la información de un sitio web es una de las tareas más críticas para generadores y administradores de contenido, también conocidos como webmaster.

En algunas oportunidades existe el acompañamiento de ingenieros web que implementan soluciones que van desde la configuración del firewall físico hasta recomendaciones en la extensión y complejidad de las contraseñas.

Pero en otros casos, como me sucede en este blog, los creadores estamos solos y debemos sortear los ataques cibernéticos desde el auto aprendizaje.

Mi recomendación, especialmente para las empresas, es lograr la consultoría permanente de un equipo de seguridad web, que vigile y asegure el core, los archivos multimedia y la base de datos, entre otros.

Con respeto a mis amigos y colegas, dejar esta responsabilidad al área de comunicaciones es, cuando menos, irresponsable.

Por lo pronto, comparto este texto para la comunidad bloguera independiente, como símbolo de agradecimiento a quienes me han orientado en situaciones «ciber-peligrosas».

Algunas acciones de seguridad

En este blog y en mi canal de YouTube he mencionado algunos consejos de seguridad, especialmente para los sistemas de administración de contenidos WordPress y Joomla.

Aquí algunos de ellos:

  • Enmascarar la ruta de acceso a la zona de administración.
  • Establecer permisos para directorios y archivos, de acuerdo a las posibilidades del propietario, el grupo y el público.
  • Cambiar el nombre de usuario administrador, que normalmente es “admin” o “administrator”.
  • Utilizar contraseñas complejas y superiores a 16 caracteres de longitud.
  • Configurar el segundo factor de autenticación.
  • Personalizar el prefijo de la base de datos.

En Internet existen cientos de publicaciones que, de acuerdo al CMS, entregan más recomendaciones. Lo importante es tener conocimientos (no necesariamente avanzados) sobre la gestión del servicio de almacenamiento (hosting) y el funcionamiento del sistema que soporta el sitio web.

¿Qué es el .HTACCESS?

El .htaccess es un archivo oculto que define parte de la configuración de los servidores Apache. En éste, el administrador establece condiciones de acceso y restricción a ficheros y directorios que están en el servidor (normalmente en la carpeta public_html).

Pero aquí no termina la función del .htaccess (que por cierto es el nombre corto de hypertext access). En este fichero también se definen, entre otras:

  • Redirecciones
  • Mensajes personalizados de error
  • Bloqueo de direcciones IP
  • Prevención de hotlinking
  • Codificación de los documentos
  • Zona horaria, especialmente si es diferente a la del servidor
  • Límite de la memoria del PHP
  • Establece la página de inicio
  • Habilita o cancela el cache

Como se aprecia, este archivo de texto es crítico en el sistema.

Evitar el listado de archivos y directorios

Una de las primeras tareas en seguridad es evitar que los visitantes accedan a ciertos directorios y visualicen los archivos y la estructura del sistema.

Ojo, esto no riñe con la estrategia de URL amigables. Este ejercicio es necesario y brinda beneficios a la estrategia SEO.

Lo que se busca aquí es evitar que los usuarios ingresen a carpetas del sistema (por ejemplo a «wp-includes», para el caso de WordPress, o «components», para el caso de Joomla) e identifiquen los directorios y ficheros que hay allí.

La opción más común es crear un archivo index.html sin contenido y ubicar en la raíz de cada directorio que se pretende proteger. ¡La tarea puede ser engorrosa si existen numerosas carpetas!

Desde el .htaccess es posible lograr lo anterior agregando estas líneas:

Options -Indexes

Otra opción es evitar la lista de archivos específicos. Por ejemplo, para ocultar ficheros PHP y HTML se agrega esta línea:

IndexIgnore *.php *.html

La última posibilidad, aunque no es muy común, es permitir la lista de directorios pero evitar la aparición de archivos. En estos casos se agrega la línea

IndexIngnore *

Bloqueo de acceso total y parcial

¿Están atacando tu web y aún no se identifican las direcciones IP desde donde se generan estas acciones? Un camino, un tanto drástico pero necesario, es restringir todas las peticiones al sitio.

La línea es:

Deny from All 

Lo que continúa ahora es permitir accesos puntuales. Por ejemplo, entrada al personal de soporte técnico. Para ello es necesario conocer la dirección IP.

La regla en el .htaccess cambiaría a:

Order deny, allow
Deny from All
Allow from xxx.xxx.xxx.xxx

Las xxx.xxx.xxx.xxx se reemplazan por la dirección IP. Pueden agregarse varias IP duplicando esa última línea y definiendo otras ubicaciones.

El otro escenario es conocer las IP de los atacantes. En este caso se niega el acceso mediante la instrucción Deny from:

Order deny, allow
Allow from All
Deny from xxx.xxx.xxx.xxx
Deny from xxx.xxx.xxx.yyy

¿Necesitas asesoría en comunicación digital?

Diseña y optimiza tus proyectos en comunicación digital, entregando una mejor experiencia a tus usuarios y potenciando el valor de tu marca.
Conversemos

Evitar ejecución de archivos PHP

Una buena práctica es evitar que usuarios no autorizados ejecuten ficheros PHP en aquellas carpetas que son susceptibles a ataques de malware. En WordPress, por ejemplo, esta acción se realiza en los directorios wp-include y wp-content/uploads.

Para lograr lo anterior se debe crear un archivo .htaccess con la siguiente instrucción:

<Files *.php>
deny from all
</Files>

Por último, este archivo se ubica en la raíz de cada directorio.

Proteger archivos de configuración del sistema

Es común que los CMS almacenen información sensible en un archivo específico. Por ejemplo, WordPress, en su archivo wp-config.php, especifica:

  • Nombre de la base de datos
  • Usuario que administra la base de datos
  • Contraseña del usuario anterior
  • Codificación de la DB
  • Prefijo de la DB
  • Claves de seguridad

A través del .htaccess es posible restringir el acceso a ficheros específicos.

Siguiendo el ejemplo de WordPress, las líneas de código serían:

<files wp-config.php>
order allow,deny deny from all
</files>

Conclusión

El .htaccess es un archivo robusto y de suma importancia en servidores Apache, pues desde él se establecen diferentes reglas de uso y restricción.

Algunos plugins escriben, de manera automática, políticas en este archivo. Por ejemplo, Wordfense, un firewall para WordPress, anota varias líneas sobre accesos y restricciones específicos y globales.

Sin embargo, para una gestión integral de sitios web es necesario conocer, revisar y afinar manualmente algunas condiciones. Aquí se presentaron las más comunes en asuntos de seguridad web.

¿Tienes una pregunta sobre el artículo? Cuéntanos en los comentarios. Además, si buscas información sobre un tema y no está disponible, anótalo a continuación para agregarlo a nuestra agenda de contenidos.

Tu aporte nos permite crear contenidos. Tu apoyo desde Nequi

Apoya la producción de la Escuela Digital desde PayPal.me

Con una taza de chocolate todo sabe mejor ¿Nos invitas a una?

¡Vamos por los 20.000 suscriptores en YouTube! Suscríbete

Por:
Juan Carlos Morales S.
Comunicador y educador
YouTube | LinkedIn | Instagram | Twitter

Licencia Creative Commons Protege tu web con un buen .htaccess por juancadotcom se distribuye bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional. Basada en una obra en https://e-lexia.com/blog.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Icono de soporte y atención. Dirige al formulario de contacto de e-Lexia.com Contacto
Logo de e-Lexia.com: Regresar al inicio del sitio web Inicio