gestisce il cookie di sessione-utente e il token csrf correttamente per l'app javascript

1

Ho un'app web django che serve endpoint api riposanti e un'app web javascript che comunica con questi endpoint tramite ajax.

Sono sotto lo stesso dominio ma in diverse porte.
server api ---- www.example.com:9000/api/endpoints
web app ---- www.example.com:9001

Ora salviamo due tipi di cookie.
user-session-cookie # autentica l'utente. secure = True, http = True csrftoken # secure = True

Mi chiedo in generale, questa implementazione è sicura? In quale circostanza il sito non è sicuro?

Non contrassegno csrftoken http = True perché l'app javascript deve ottenere il csrftoken per inviare richieste. Tuttavia, sto esponendo csrftoken a un attacco XSS. Posso comunque prevenire csrftoekn dall'attacco XSS?

    
posta user35138 12.12.2013 - 22:48
fonte

1 risposta

1

XSS e CSRF hanno un'interazione rock / carta / forbici. XSS è sempre dominante su CSRF e quasi tutti i metodi presenti nella Scheda Cheat CSRF Prevenzione possono essere bypassato con XSS. Un caso in cui non è possibile utilizzare XSS e CSRF per attivare una richiesta è se la richiesta richiede la password corrente, un token SMS o inviato via email all'utente o un altro valore che non può essere ottenuto utilizzando un browser con i vincoli del SOP. Il Sammy MySpace Worm è un buon esempio di come un token di sincronizzazione CSRF può essere indebolito utilizzando un XHMLHttpRequest() .

XSS è un problema serio. Un metodo efficace di difesa contro XSS è la definizione di Content-Security Policy (CSP) set di regole che impedisce l'esecuzione di JavaScript da parte del codice HTML iniettato. Il CSP insieme a una validazione dell'input strong può essere usato per prevenire tutto l'XSS all'interno di un'applicazione con un elevato grado di certezza.

    
risposta data 12.12.2013 - 23:11
fonte

Leggi altre domande sui tag