CSRF o falsificació de sol·licituds entre llocs és una vulnerabilitat del lloc web on un atacant pot provocar una acció a la sessió d'una víctima en un altre lloc web. Una de les coses que fa que CSRF sigui tant de risc és que ni tan sols requereix la interacció de l'usuari, tot el que es necessita és que la víctima vegi una pàgina web amb l'exploit.
Consell: CSRF es pronuncia generalment lletra per lletra o com a "surf al mar".
Com funciona un atac CSRF?
L'atac implica que l'atacant crea un lloc web que té un mètode per fer una sol·licitud en un altre lloc web. Això podria requerir la interacció de l'usuari, com ara fer que premeu un botó, però també podria ser sense interacció. A JavaScript hi ha maneres de fer que una acció passi automàticament. Per exemple, una imatge de zero per zero píxel no serà visible per a l'usuari, però es pot configurar perquè el seu "src" faci una sol·licitud a un altre lloc web.
JavaScript és un llenguatge del costat del client, això vol dir que el codi JavaScript s'executa al navegador i no al servidor web. Gràcies a aquest fet, l'ordinador que fa la sol·licitud de CSRF és en realitat el de la víctima. Malauradament, això vol dir que la sol·licitud es fa amb tots els permisos que té l'usuari. Una vegada que el lloc web atacant ha enganyat la víctima perquè faci la sol·licitud CSRF, la sol·licitud és essencialment indistinguible de l'usuari que fa la sol·licitud normalment.
CSRF és un exemple d'un "atac adjunt confús" contra el navegador web, ja que un atacant enganya el navegador perquè utilitzi els seus permisos sense aquests privilegis. Aquests permisos són els vostres testimonis de sessió i d'autenticació al lloc web de destinació. El vostre navegador inclou automàticament aquestes dades en qualsevol sol·licitud que faci.
Els atacs CSRF són una mica complexos d'organitzar. En primer lloc, el lloc web de destinació ha de tenir un formulari o URL que tingui efectes secundaris, com ara eliminar el vostre compte. Aleshores, l'atacant necessita elaborar una sol·licitud per dur a terme l'acció desitjada. Finalment, l'atacant ha d'aconseguir que la víctima carregui una pàgina web amb l'explotació mentre està iniciada la sessió al lloc web objectiu.
Per evitar problemes de CSRF, el millor que podeu fer és incloure un testimoni CSRF. Un testimoni CSRF és una cadena generada aleatòriament que s'estableix com a galeta, el valor s'ha d'incloure amb cada resposta al costat d'una capçalera de sol·licitud que inclou el valor. Tot i que un atac CSRF pot incloure la galeta, no és possible determinar el valor del testimoni CSRF per establir la capçalera i, per tant, l'atac serà rebutjat.