Suppose my site does not have the concept of a user account...
Then is a clickjacking attack still applicable to my site?
Anche se non ci sono account, se esiste un concetto di sessioni utente, allora potrebbe applicarsi Clickjacking. Tutto dipende da ciò che viene archiviato a livello di sessione.
Il modo migliore per pensare a questo è che se il tuo sito ricorda lo stato a livello di sessione e non stai impostando X-Frame-Options per evitare il framing, quindi un utente malintenzionato potrebbe ingannare un utente a inviare queste informazioni sullo stato per eseguire un'azione.
L'altro requisito sarebbe un elemento cliccabile da qualche parte sul tuo sito, di solito un pulsante, che non richiede alcun input sulla pagina ad eccezione del clic.
Il clickjacking è una sorta di "modo per aggirare" la protezione CSRF su pagine in cui non è richiesto alcun input da parte dell'utente per inviarle.
Un esempio:
- L'utente aggiunge un "widget" al suo carrello sul tuo sito.
- L'utente va al checkout e inserisce le informazioni personali e i dettagli della carta.
- Questa informazione viene memorizzata sul lato server nella sessione utente, identificata tramite un token casuale memorizzato in un cookie.
- L'utente viene reindirizzato a una pagina di conferma in modo che possano controllare i dettagli prima di inviare l'ordine: una richiesta GET a
example.com/confirm.php
mostra il loro ordine e possono fare clic su un pulsante di invio per completare l'ordine che invia un modulo vuoto ( ad eccezione di un token CSRF) risultante in una richiesta POST a complete.php
.
Ora un utente malintenzionato potrebbe incorniciare la pagina confirm.php
e visualizzare un altro pulsante in alto, in modo tale che quando l'utente fa clic sul pulsante, invia l'ordine al sito. Forse questo potrebbe essere combinato con una vulnerabilità CSRF altrove per aggiungere elementi al paniere di un utente, e potrebbe essere eseguito in un punto in cui è noto che la sessione è popolata (forse l'attaccante ha acquisito il controllo di uno dei siti dell'inserzionista che vengono visualizzati dopo il primo checkout dell'utente e questa vulnerabilità consente loro di farlo di nuovo con un elemento scelto dall'attaccante).
Quindi sì, il tuo sito potrebbe essere vulnerabile e dipende dai dettagli specifici dell'implementazione e dal modello di business del tuo sito per vedere se rappresenta una vera minaccia o meno.