Considera la seguente immagine (tratta da pagina 21 qui ). È possibile? Se sì, come posso prevenirlo?
Considera la seguente immagine (tratta da pagina 21 qui ). È possibile? Se sì, come posso prevenirlo?
Sì, è possibile. O meglio, sarebbe possibile, tranne che Google ha schierato contromisure per difendersi proprio da questo attacco.
Questo attacco è noto come "login CSRF". È simile a un attacco CSRF standard, ma un po 'diverso. Se esegui una ricerca su "login CSRF", troverai informazioni sull'attacco. È una vera minaccia contro alcuni servizi web. Per ulteriori dettagli, consulta la mia risposta a una domanda correlata e il seguente documento di ricerca:
Vedi in particolare le Sezioni 1-3 di quel documento di ricerca per ulteriori dettagli tecnici. Il documento descrive come difendersi dall'attacco.
La versione breve di come difendersi dall'attacco consiste nel includere un token CSRF segreto in tutte le richieste POST, inclusi i tentativi di accesso; e sul lato server, è necessario che i tentativi di accesso includano il token CSRF segreto appropriato. OWASP ha ulteriori informazioni su come distribuire token CSRF segreti.
L'obiettivo di un attacco CSRF non è solitamente quello di rubare credenziali, o di accedere attraverso i dettagli rubati, ma di ottenere un account valido per eseguire un'azione scelta dall'attaccante. Ad esempio, se un amministratore di un sito di destinazione è vittima di un attacco CSRF, può elevare un account non amministratore a un account amministratore senza rendersene conto.
Questo può accadere attraverso un difetto XSS sul sito di destinazione stesso, oppure l'amministratore potrebbe essere indotto a visitare un sito Web dannoso che esegue un comando sul sito di destinazione (come mostrato nell'immagine sopra). Oppure l'amministratore potrebbe essere stato indotto a visitare direttamente il proprio sito, ad esempio: http://somesite.com/edit_user.php?action=setClass&class=admin&userId=23443
(non è sicuro se conti ancora come CSRF, o se si tratta solo di social engineering).
Per proteggersi da questo, puoi usare CAPTCHAS su pagine che eseguono azioni importanti, oppure puoi usare codici hash segreti per tentare di verificare che una richiesta sia richiesta.
Ecco una buona descrizione e suggerimenti per le contromisure qui: link
Leggi altre domande sui tag web-application attack-prevention csrf