Il CSRF (Cross-site request forgery) è una vulnerabilità del sito Web in cui un browser di utenti valido viene utilizzato per inviare una richiesta dannosa, possibilmente tramite un iFrame. Poiché il browser invia i cookie a livello di dominio, se l'utente ha attualmente eseguito il login a un'applicazione, i dati dell'utente potrebbero essere compromessi.
Ad esempio, considerate uno scenario in cui avete eseguito l’accesso alla console di amministrazione in un browser. Riceverete un messaggio e-mail contenente un collegamento. Fai clic sul collegamento per aprire una nuova scheda nel browser. La pagina aperta contiene un iFrame nascosto che esegue una richiesta dannosa al server dei moduli utilizzando il cookie della sessione dei moduli AEM autenticati. Poiché User Management riceve un cookie valido, trasmette la richiesta.
Referente: l'indirizzo della pagina di origine da cui proviene una richiesta. Ad esempio, una pagina Web sul sito1.com contiene un collegamento a sito2.com. Facendo clic sul collegamento si invia una richiesta a site2.com. Il referente di questa richiesta è site1.com perché la richiesta viene effettuata da una pagina la cui origine è site1.com.
URI whitelist: gli URI identificano le risorse sul server dei moduli che vengono richieste, ad esempio, /adminui o /contentspace. Alcune risorse possono consentire l'accesso all'applicazione da siti esterni. Queste risorse vengono considerate URI inseriti nell'elenco Consentiti. Il server dei moduli non esegue mai un controllo referente dagli URI inseriti nell'elenco Consentiti.
Referente nullo: Quando si apre una nuova finestra o scheda del browser, si digita un indirizzo e si preme Invio, il referente è nullo. La richiesta è completamente nuova e non proviene da una pagina Web padre; pertanto, non esiste un referente per la richiesta. Il server moduli può ricevere un referente nullo da:
Consentire un referente nullo sugli endpoint SOAP e REST. Consentite inoltre un referente nullo su tutte le pagine di login URI, ad esempio /adminui e /contentspace, e sulle relative risorse mappate. Ad esempio, il servlet mappato per /contentspace è /contentspace/faces/jsp/login.jsp, che deve essere un'eccezione di riferimento null. Questa eccezione è necessaria solo se si abilita il filtro GET per l'applicazione Web. Le applicazioni possono specificare se consentire referenti null. Vedere "Protezione dagli attacchi di contraffazione delle richieste tra siti" in Protezione e protezione per AEM moduli.
Eccezione referente consentita: Eccezione referente consentita è un sottoelenco dell'elenco di referenti consentiti, da cui vengono bloccate le richieste. Le eccezioni di riferimento consentite sono particolari per un'applicazione Web. Se un sottoinsieme dei Referenti Consentiti non deve essere autorizzato a richiamare una particolare applicazione Web, è i referenti tramite Eccezioni Referente Consentite. Le eccezioni di riferimento consentite sono specificate nel file web.xml dell'applicazione. (Vedere "Protezione dagli attacchi di contraffazione delle richieste cross-site" nella pagina Hardening and Security for AEM forms on Help and Tutorials.)
AEM moduli fornisce un filtro di riferimento, che può aiutare a prevenire attacchi CSRF. Come funziona il filtro dei riferimenti:
Il server dei moduli verifica il metodo HTTP utilizzato per la chiamata:
Il server dei moduli verifica se l'URI richiesto è inserito nell'elenco Consentiti:
Se nella richiesta è presente un referente, il server verifica se si tratta di un referente consentito. Se consentita, il server verifica la presenza di un'eccezione di referente:
Se nella richiesta non è presente alcun referente, il server verifica se è consentito un referente nullo.
Quando si esegue Configuration Manager, l'host e l'indirizzo IP predefiniti o il server moduli vengono aggiunti all'elenco Referente consentito. Potete modificare questo elenco nella console di amministrazione.
Nella console di amministrazione, fate clic su Impostazioni > Gestione utente > Configurazione > Configura URL referente consentiti. L'elenco Referente consentito viene visualizzato nella parte inferiore della pagina.
Per aggiungere un referente consentito:
0
(zero) nelle caselle, tutte le porte del server vengono abilitate. Potete inoltre immettere un numero di porta specifico per attivare solo tale porta.Per rimuovere una voce dall'elenco Referente consentito, selezionarla dall'elenco e fare clic su Elimina.
Se l’elenco di riferimenti consentiti è vuoto, la funzione CSRF smette di funzionare e il sistema diventa insicuro.
Dopo aver modificato l'elenco Referente consentito, riavviare il server moduli AEM.