Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Dubbio su token CSRF

  1. #1

    Dubbio su token CSRF

    Ciao a tutti, per proteggere un form da attacchi CSRF sembra essere sufficiente una combinazione di token e sessioni di php (almeno è ciò che ho trovato in rete); in pratica genero il token e lo piazzo nel form:

    codice:
    <input type="hidden" value="<? echo $token ?>" name="token" />
    Quindi la pagina di destinazione del form si aspetta questo token che dovrà corrispondere alla sessione creata.

    Supponiamo però che un malintenzionato:

    1) Apre la pagina del form "sano" generando un nuovo token;
    2a) Visualizza il sorgente della pagina copiandosi il token;
    2b) Lascia la pagina aperta in modo da non perdere la sessione;
    3) Incolla il token nel suo form "fasullo" e lo inoltra alla pagina di destinazione del form "sano".

    E' possibile una cosa del genere o è fantascienza?

  2. #2
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    2b) Lascia la pagina aperta in modo da non perdere la sessione;
    3) Incolla il token nel suo form "fasullo" e lo inoltra alla pagina di destinazione del form "sano".
    Non ho capito la tua domanda. CSRF è
    è una vulnerabilità a cui sono esposti i siti web dinamici quando sono progettati per ricevere richieste da un client senza meccanismi per controllare se la richiesta sia stata inviata intenzionalmente oppure no. (wikipedia)
    Se la tua domanda è "quel token dovrebbe fare in modo che l'utente possa inviare il form solo dalla mia pagina, evitando quindi che possa inviare dati arbitrari?" allora la risposta è no. Se la domanda è "l'attaccante può fare inviare dati per conto della vittima, senza che quest'ultima ne sia a conoscenza, prendendo lui stesso un token valido dal sito, e facendolo inviare alla vittima con i dati scelti da lui?" allora no. Come hai detto prima, il token è valido per sessione. Un token generato per la sessione X non deve risultare valido per la sessione Y. L'attaccante dovrebbe:
    - o utilizzare la stessa sessione della vittima
    - o indovinare un token valido che la vittima può o potrebbe usare
    Ultima modifica di .Kurt; 19-01-2016 a 19:50

  3. #3
    In pratica vorrei assicurarmi che il form venga inviato dal mio sito e non da altri server.. Al posto del token ci si può affidare ad un escamotage del genere nella pagina di destinazione del form?

    codice:
    if($_SERVER["HTTP_REFERER"] != "http://www.miosito.it/")
    	{
    	die();
    	}

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.