Saltar al contenido principal

CSRF

As siglas CSRF significan Cross-Site Request Forgery ou Falsificación de peticións entre sitios.

É un tipo de ataque de seguridade web que intenta enganar a un navegador para que realice accións non autorizadas nun sitio onde o usuario está autenticado, sen que el o saiba.

Imos velo cun exemplo sinxelo:

  1. Ti estás logueado nun sitio (por exemplo, banco.com) e tes unha cookie de sesión activa.

  2. Visitas outra páxina web maliciosa (malicioso.com).

  3. Esa páxina inclúe código oculto que fai unha petición ao teu banco, coma esta:

    <img src="https://banco.com/transferir?cantidade=1000&para=contaAtaque" />
  4. O navegador, sen saber que é un ataque, envía a cookie da túa sesión activa ao banco, coma se foses ti.

  5. O banco pensa que ti fixeches esa petición real, e realiza a acción.

Aproveita a confianza que o sitio web (o servidor) ten no navegador do usuario. O atacante non precisa saber a túa contrasinal, só que esteas logueado.

Para prever estes ataques podemos utilizar Tokens CSRF:

O servidor xera un token único e imprevisible por sesión. Este token envíase ao cliente e debe incluírse nos formularios ou peticións POST. Se non está presente ou é incorrecto, a petición é rexeitada.

Exemplo de campo oculto nun formulario:

<input type="hidden" name="csrf_token" value="xA13b9f..." />