Mitigazione CSRF in MVC

0

Mi sto chiedendo quale sia il modo migliore per proteggersi da CSRF in MVC o in qualsiasi altra app web stateless. A causa della natura senza stato, non possiamo mantenere un token segreto nella sessione e confrontarlo con il segreto che ha accettato il modulo client in seguito. La mia domanda è: come possiamo impedire a un utente malintenzionato di attaccare da CSRF? Si noti che non sto cercando informazioni specifiche sull'implementazione come "use AntiForgeryToken ()". Qualsiasi informazione correlata sarà utile. Grazie mille.

    
posta pert123 07.03.2013 - 13:18
fonte

1 risposta

1

in MVC or any other stateless web app

La tua terminologia è piuttosto confusa. Qualsiasi applicazione utente rivolta è una gerarchia di pattern MVC. MVC è raramente apolide, infatti nei casi in cui è senza stato (serveride) c'è un rischio molto piccolo da CSRF. La tua domanda riguarda davvero la gestione delle sessioni.

In assenza di gestione delle sessioni, l'unico modo che conosco per risolvere il problema è tramite OTP - ma probabilmente questa è gestione della sessione poiché l'OTP deve essere conservato fino a quando non viene utilizzato, e le informazioni circa l'OTP modificato quando viene utilizzato.

Se si considera il caso per la pubblicità pay-per-click - non si sta facendo affidamento su alcuna informazione fornita dall'utente, tuttavia è necessario tenere traccia dei conteggi - da qui l'applicazione non è apatica. È possibile evitare la necessità di mantenere una sessione utilizzando (ad esempio) il fingerprinting del browser, ma è necessario mantenere un elenco (stato) di impronte digitali già considerate "cliccate" - l'applicazione non è più a lungo stateless per quanto riguarda il dispositivo client e c'è una sessione. In realtà non è così diverso dal far cadere un cookie sul browser e leggerlo in seguito.

Dato che risolve anche molti altri problemi, mantenere una sessione serveride è la soluzione migliore.

    
risposta data 07.03.2013 - 15:09
fonte

Leggi altre domande sui tag