Glossan

¿Qué es CSRF?

También llamado: Cross-Site Request Forgery, falsificación de petición en sitios cruzados, XSRF

Definición

Un CSRF es un ataque en el que una web maliciosa hace que tu navegador envíe, sin que lo sepas, una petición a otra web en la que tienes la sesión iniciada, como cambiar tu correo o hacer una transferencia.

El navegador envía automáticamente las cookies de un sitio con cada petición a ese sitio, venga de donde venga. Si estás conectado a tu panel de hosting y visitas una página trampa, esa página puede enviar un formulario al panel, y el panel lo verá como una petición legítima tuya.

Ejemplo

Página maliciosa que, al cargarse, envía un formulario oculto:

<form action="https://panel.example.com/cuenta/email" method="POST" id="f">
  <input type="hidden" name="email" value="atacante@example.net">
</form>
<script>document.getElementById("f").submit();</script>

Si el panel no está protegido, el correo de tu cuenta cambia al del atacante, que luego puede restablecer tu contraseña.

Cómo protegerse

<form method="POST" action="/cuenta/email">
  <input type="hidden" name="_token" value="kq8Z3x...">
  ...
</form>

CSRF y XSS

No hay que confundirlos: en un XSS el atacante ejecuta código dentro de la web vulnerable; en un CSRF, la petición viene desde fuera aprovechando tu sesión. Si una web tiene un XSS, las protecciones CSRF dejan de servir, porque el script puede leer el token.

¿Tienes un producto o servicio relacionado con CSRF? Anúnciate en este término.

Términos relacionados

Categorías: Seguridad Backend