Leer un registro de acceso tras un ataque
El registro ya contiene la historia completa. Seis órdenes de una línea convierten un millón de filas en: quién, desde dónde y si entró.
5 min read
Las copias de seguridad son una medida de seguridad
Una copia en el mismo servidor, con las mismas credenciales, no es una copia de seguridad. Es una segunda copia esperando el mismo suceso.
4 min read
CSRF: un formulario enviado desde otro sitio
Tu visitante ha iniciado sesión, y otro sitio hace que su navegador envíe una petición al tuyo. Un token por formulario lo detiene.
4 min read
Cómo saber si un sitio está comprometido
La mayoría de los sitios comprometidos le parecen perfectamente normales a su dueño. Las señales que merece la pena comprobar, y las cuatro órdenes que las encuentran.
5 min read
fail2ban: qué detiene y qué no
Lee registros y bloquea direcciones que repiten un patrón. Útil, limitado y muy fácil de configurar de modo que bloquee tu propia oficina.
5 min read
Permisos correctos, no solo permisos que funcionan
777 hace desaparecer el error y abre el sitio a cualquiera que pueda escribir un archivo. Qué significan los números y qué necesita de verdad un sitio web.
5 min read
Limpiar un sitio comprometido
El orden que deja limpio un sitio hackeado y lo mantiene limpio, y el paso que casi todo el mundo se salta.
8 min read
Endurecer SSH
Seis líneas de configuración convierten el servicio más atacado de tu servidor en uno que no se puede adivinar en absoluto.
4 min read
Código malicioso en la base de datos, no en los archivos
Reinstalaste el núcleo, sustituiste todos los complementos, y la redirección sigue ahí. Está en una fila, no en un archivo.
4 min read
La propiedad, umask y la trampa del grupo
chmod 777 cura el síntoma y abre la puerta. La propiedad y el bit de grupo curan la causa, y mantienen correctos los archivos nuevos.
5 min read
Fuerza bruta contra el panel de control
Miles de intentos de acceso al día son ruido de fondo normal. Solo se convierten en una brecha cuando una contraseña es débil y nadie está contando.
4 min read
Mantener PHP parcheado sin romper el sitio
Quedarse en una versión de PHP sin soporte es un fallo de seguridad a cámara lenta. Las versiones de parche son seguras; las versiones mayores piden veinte minutos de preparación.
4 min read
Por qué una copia no es una copia de seguridad
El ransomware busca primero las copias, y encuentra las que el servidor puede alcanzar. La regla 3-2-1 existe justo por eso.
4 min read
Limitar la tasa de una página de acceso
Adivinar contraseñas son miles de intentos por hora. Un límite lo vuelve inútil, y cuesta un bloque en la configuración del servidor.
4 min read
La inyección SQL, en términos llanos
El dato se leyó como parte de la pregunta. Una sola costumbre elimina toda esa familia, y no es el escapado.
5 min read
Claves SSH en vez de contraseñas
Una clave acaba por completo con los intentos por fuerza bruta. Genérela, instálela, pruébela en una segunda ventana y solo entonces apague las contraseñas.
5 min read
El doble factor, y dónde guardar los códigos de recuperación
Hace que una contraseña robada deje de bastar. Ponerlo cuesta dos minutos; la parte que la gente hace mal es qué pasa cuando se pierde el móvil.
4 min read
El directorio de subidas no debe ejecutar nunca
Comprobar la extensión del archivo no basta. Si el servidor web va a ejecutar PHP desde su carpeta de subidas, una sola subida mala es un shell.
4 min read
Las cuatro cosas por las que piratean los sitios WordPress
No son exploits oscuros. Cuatro descuidos corrientes explican casi todos los sitios comprometidos, y cada uno se cierra en minutos.
6 min read
El cross-site scripting, en palabras llanas
El código de otro ejecutándose en su página, dentro de la sesión de su visitante. Una sola costumbre lo evita casi por completo.
5 min read