Ti trovi qui:
Protezione contro la falsificazione di richieste intersito (CSRF) in Business Manager
Un attacco CSRF è una tecnica utilizzata da utenti malintenzionati per forzare la vittima a effettuare una richiesta protetta involontaria a Business Manager, ossia una richiesta che può danneggiare gravemente l'attività di e-commerce svolta. Questo argomento si applica a B2C Commerce.
Attacchi CSRF
Tutte le pagine di Business Manager sono automaticamente protette dagli attacchi CSRF. Ogni volta che una pagina di Business Manager effettua una richiesta al server di B2C Commerce, la pagina inserisce automaticamente uno speciale token CSRF nella richiesta. Quando riceve la richiesta, il server stabilisce se essa sta tentando di eseguire un'azione protetta (potenzialmente dannosa). Se la richiesta tenta di eseguire un'azione di questo tipo, il server convalida automaticamente il token inserito. Se riesce a convalidare il token, il server completa l'azione con protezione e restituisce la risposta prevista; in caso contrario, a partire dalla versione 17.4 nelle istanze SIG e dalla versione 17.5 nelle istanze PIG, il server registra un avviso e in alcuni casi restituisce una pagina di errore.
Se viene visualizzata una pagina di errore, seguire la procedura indicata e riprovare dal punto in cui si è verificato l'errore. Se il nuovo tentativo va a buon fine, ignorare l'errore; se non va a buon fine e l'errore persiste, e che sia attiva la relativa protezione. In questo caso, contattare il reparto sicurezza.
Non tutti gli errori o le voci di registro correlati a CSRF indicano un attacco. Un amministratore Salesforce deve risolvere i problemi relativi alle voci di registro CSRF per individuarne le cause sottostanti e stabilire una linea d'azione appropriata. In alcuni casi, se si utilizza un'estensione di Business Manager personalizzata, è necessario che uno sviluppatore modifichi il codice personalizzato dell'estensione in modo che vengano correttamente inseriti i token CSRF. In altri casi è possibile scegliere di aggiungere alla whitelist una pipeline o un agente utente specifico.
Risoluzione dei problemi delle voci di registro CSRF
Le voci di registro CSRF hanno il seguente formato:
Token CSRF della pipeline non valido[reason]: pipeline: (token|no_token):: Referer/Origine: URL:: UserAgent: agente
Dove:
-
reason è una stringa che descrive il motivo per cui la convalida non è andata a buon fine. Alcuni motivi possibili:
- Convalida origine: la richiesta proveniva da un sito web che non è una pagina di Business Manager.
- Nessun token: la richiesta è stata effettuata senza un token CSRF.
- Convalida token CSRF: il token non è corretto per questo utente o è scaduto (timeout di 1 ora).
- Eccezione verificatasi: si è verificata una situazione imprevista durante l'elaborazione (repository generico).
- pipeline: nome della pipeline nella richiesta.
- token: token ricevuto dal server (se ne è stato inviato uno nella richiesta).
- no_token stringa indica che non è stato trovato alcun token nella richiesta: "Il token CSRF non esiste."
- URL: URL indicante l'origine della richiesta.
- agent rappresenta i primi 32 caratteri dell'agente utente.
Per trovare queste voci nei file di registro, cercare la stringa "Token CSRF della pipeline".
Vedere Log Center.
Il server crea voci di registro ogni volta che prevede un token CSRF valido, ma non riesce a trovarne uno o ne trova uno non valido. Le seguenti situazioni possono causare voci di registro:
| Situazione | Soluzione possibile |
|---|---|
| L'utente di Business Manager ha subito un attacco. Se l'utente è stato indirizzato alla pagina di errore dopo aver visitato un altro sito, l'altro sito ha tentato di effettuare una richiesta protetta (involontaria per l'utente) a Business Manager e il framework ha provveduto a proteggere adeguatamente l'utente dall'attacco. | L'utente di Business Manager segnala l'attacco al reparto sicurezza. |
L'utente di Business Manager non ha subito attacchi e la voce di registro indica che non è stato trovato alcun token. Una causa possibile è che l'inserimento automatico del token nelle estensioni di Business Manager personalizzate non sia andato a buon fine. B2C Commerce ha scoperto diversi punti in cui questa situazione può verificarsi, tra cui:
|
Per aggiungere manualmente il token, lo sviluppatore utilizza il metodo con: |
| L'utente di Business Manager non ha subito attacchi e la voce di registro indica che il token non era valido. Poiché i token scadono dopo 60 minuti, l'utente può tornare a una scheda del browser precedente ed effettuare una richiesta che non viene convalidata. Questa situazione può verificarsi anche su un ridotto numero di pagine che aggiornano i dati visualizzati senza passare a un'altra pagina in Business Manager. | L'utente di Business Manager può aggiornare la pagina in cui si è verificato l'errore. |
| L'utente di Business Manager non ha subito attacchi, ma anziché effettuare la richiesta al server da Business Manager, l'ha effettuata da un'e-mail, un segnalibro o un sito web distinto. | Per consentire agli utenti di effettuare richieste da e-mail, segnalibri o siti Web distinti, si consiglia di creare un nuovo nodo iniziale nella pipeline che funga da reindirizzamento sicuro alla pagina desiderata. Questa attività viene eseguita da uno sviluppatore. Quando lo sviluppatore ha completato questa attività, un amministratore può aggiungere alla whitelist la combinazione pipeline-nodo iniziale di reindirizzamento. In tal modo, la convalida CSRF viene disabilitata per tale nodo iniziale per tutti gli utenti. |
| L'utente di Business Manager non ha subito attacchi, ma la richiesta non può essere protetta o non è ancora stata protetta. | Un amministratore può utilizzare una whitelist CSRF per disabilitare temporaneamente la convalida per la pipeline o per la combinazione pipeline/nodo iniziale. Questa soluzione è in genere sconsigliata. |
| Uno script automatico raccoglie i dati da un'istanza di Business Manager o importa i dati per i test automatici. | Un amministratore può utilizzare una whitelist CSRF per autorizzare l'agente utente dello script. Se si utilizza questo approccio, si consiglia vivamente di utilizzare una stringa agente utente non basata su browser. In tal modo si disabilita la logica di convalida per tutte le richieste in cui l'agente utente corrisponde esattamente al valore presente nella whitelist. In alternativa, i clienti possono scegliere di fornire agli script automatici la conoscenza del token CSRF (che B2C Commerce incorpora in ogni pagina di Business Manager) e di utilizzarlo nelle richieste basate su script. In tal modo viene simulato il comportamento della navigazione basata su browser (approccio consigliato). |
