La vulnerabilità cross-site request forgery (CSRF) è una vulnerabilità del sito web in cui il browser di un utente valido viene utilizzato per inviare una richiesta dannosa, possibilmente tramite un iFrame. Poiché il browser invia cookie su base di dominio, se l’utente ha effettuato l’accesso a un’applicazione, i suoi dati potrebbero essere compromessi.
Ad esempio, considera uno scenario in cui hai effettuato l’accesso alla console di amministrazione in un browser. Ricevi un messaggio e-mail contenente un collegamento. Fai clic sul collegamento, che apre una nuova scheda nel browser. La pagina aperta contiene un iFrame nascosto che invia una richiesta dannosa al server Forms utilizzando il cookie della sessione autenticata dei moduli AEM. Poiché la gestione utenti riceve un cookie valido, trasmette la richiesta.
Referer: Indirizzo della pagina sorgente da cui proviene una richiesta. Ad esempio, una pagina Web su site1.com contiene un collegamento a site2.com. Facendo clic sul collegamento viene inviata 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 inseriti nell'elenco Consentiti: Gli URI identificano le risorse sul server Forms che vengono richieste, ad esempio /adminui o /contentspace. Alcune risorse possono consentire una richiesta di accesso all’applicazione da siti esterni. Queste risorse sono considerate URI inseriti nell'elenco Consentiti. Forms Server non esegue mai un controllo referente dagli URI inseriti nell'elenco Consentiti.
Referente nullo: Quando apri una nuova finestra o scheda del browser, quindi digiti un indirizzo e premi Invio, il referente è nullo. La richiesta è completamente nuova e non proviene da una pagina web principale; pertanto, non esiste un referente per la richiesta. Il server Forms può ricevere un referente null da:
Consenti un referente null sugli endpoint SOAP e REST. Consenti anche un referente null in tutte le pagine di accesso URI, ad esempio /adminui e /contentspace, e nelle relative risorse mappate corrispondenti. Ad esempio, il servlet mappato per /contentspace è /contentspace/faces/jsp/login.jsp, che deve essere un’eccezione referente null. Questa eccezione è necessaria solo se si abilita il filtro GET per l'applicazione Web. Le applicazioni possono specificare se consentire l'utilizzo di referenti null. Consulta "Protezione da attacchi di tipo Cross-Site Request Forgery" in Indurimento e sicurezza dei moduli AEM.
Eccezione referente consentita: Eccezione referente consentito è un sottoelenco dell’elenco dei referenti consentiti, dai quali le richieste sono bloccate. Le eccezioni Riferimenti consentiti sono specifiche per un’applicazione web. Se a un sottoinsieme dei Referenti consentiti non deve essere consentito di richiamare una particolare applicazione web, puoi inserire nell'elenco Bloccati i Referenti tramite Eccezioni referenti consentite. Le eccezioni di riferimento consentite sono specificate nel file web.xml dell’applicazione. (Consulta "Protezione da attacchi di tipo Cross-Site Request Forgery" in Protezione e protezione per i moduli AEM nella pagina Guida e Tutorials.)
AEM Forms fornisce il filtro del referente che può aiutare a prevenire gli attacchi CSRF. Ecco come funziona il filtro del referente:
Forms Server controlla il metodo HTTP utilizzato per la chiamata:
Forms Server verifica se l'URI richiesto è inserito nell'elenco Consentiti:
Se nella richiesta è presente un referente, il server controlla se si tratta di un referente consentito. Se consentito, il server verifica la presenza di un'eccezione referente:
Se nella richiesta non è presente alcun referente, il server controlla se è consentito un referente null.
Quando si esegue Configuration Manager, l'host e l'indirizzo IP predefiniti o il server Forms vengono aggiunti all'elenco Referenti consentiti. Puoi modificare questo elenco nella console di amministrazione.
Nella console di amministrazione, fai clic su Impostazioni > Gestione utente > Configurazione > Configura URL referente consentiti. L'elenco Referenti consentiti viene visualizzato nella parte inferiore della pagina.
Per aggiungere un referente consentito:
0
(zero) nelle caselle, tutte le porte del server sono abilitate. È inoltre possibile immettere un numero di porta specifico per abilitare solo tale porta.Per rimuovere una voce dall'elenco Referente consentito, selezionare la voce dall'elenco e fare clic su Elimina.
Se l'elenco dei referenti consentiti è vuoto, la funzione CSRF smette di funzionare e il sistema non è più sicuro.
Dopo aver modificato l’elenco dei Referenti consentiti, riavvia AEM Forms Server.