La declaración, "todo sitio sin un token CSRF es vulnerable a un ataque CSRF", no es exacto. Ciertamente, no se aplica a los sitios web estáticos que no tienen funcionalidad del lado del servidor, donde CSRF ni siquiera es aplicable / posible. Además, el
Agregando tokens CSRF, una cookie de doble envío y valor, token encriptado,
u otra defensa que implique cambiar la interfaz de usuario puede ser frecuentemente
Complejos o de otro modo problemáticos. Una defensa alternativa que es
particularmente adecuado para los puntos finales AJAX es el uso de un personalizado
encabezado de solicitud Esta defensa se basa en la política del mismo origen (SOP)
restricción de que solo se puede usar JavaScript para agregar un encabezado personalizado,
Y solo dentro de su origen. Por defecto, los navegadores no permiten
JavaScript para realizar solicitudes de origen cruzado.
Un encabezado personalizado y un valor particularmente atractivo para usar es:
X-Requested-With: XMLHttpRequest
o
A veces es más fácil o más apropiado involucrar al usuario en la transacción para evitar transacciones no autorizadas (falsificadas u otras).
Los siguientes son algunos ejemplos de opciones de desafío-respuesta:
- Re-autenticación (contraseña o más fuerte)
- Token de una sola vez
- CAPTCHA
De lo contrario, cualquier aplicación web que no implemente ninguno de estos mecanismos y tenga solicitudes GET o POST de HTTP que inicien acciones puede ser vulnerable.
CSRF y CORS son conceptos bastante separados, aunque existe cierta similitud, al menos en la raíz de todo.
CORS, o Cross-Origin-Resource-Sharing permite a un servidor definir una política de la cual los orígenes (otros dominios) pueden recuperar información de él. Aunque la política predeterminada impide que otro origen lea datos, no impide que un ataque CSRF tenga éxito.
Por favor, comparta su metodología si es posible, por ejemplo, ¿para qué analizará?
Si no encuentras un sitio con crsf token? ¿Cómo vas a comprobar si tiene
uno o no?
Puede buscar un token CSRF examinando las cookies, el cuerpo de la solicitud y el HTML, aunque puede depender del sistema específico utilizado.
Puede probar las vulnerabilidades de CSRF creando una página HTML de prueba que intente realizar solicitudes confidenciales hacia el sitio web en cuestión.