Sto lavorando su un'applicazione completamente Ajax-driven in cui tutte le richieste passano attraverso quello che in pratica equivale a un controller principale che, nelle sue ossa nude, simile a questa:Un server di intestazione X-Requested-With è sufficiente per proteggere da un CSRF per un'applicazione basata su ajax?
if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
fetch($page);
}
È questo generalmente sufficiente a proteggere contro falsi di richieste cross-site?
È piuttosto scomodo avere un token di rotazione quando l'intera pagina non viene aggiornata ad ogni richiesta.
Suppongo che potrei passare e aggiornare un token univoco come variabile javascript globale con ogni richiesta, ma in qualche modo mi sento goffo e sembra comunque insicuro.
EDIT - Forse un token statico, come l'UUID dell'utente, sarebbe meglio di niente?
EDIT # 2 - Come Il Rook ha sottolineato, questa potrebbe essere una domanda di divisione. Ho letto le speculazioni in entrambi i modi e ho sentito sussurri lontani riguardo alle versioni precedenti del flash che sono sfruttabili per questo tipo di imbrogli. Dal momento che non ne so nulla, sto mettendo una taglia per chiunque possa spiegare come questo sia un rischio CSRF. Altrimenti, lo darò a Artefacto. Grazie.
per la cronaca Artefacto era corretta. Dovresti leggere il manuale sulla sicurezza del browser invece di chiedere SO. Molte delle risposte su SO non sono corrette, in particolare per argomenti relativi alla divisione dei capelli come questo. – rook
C'erano effettivamente alcune [vulnerabilità] (http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_Flash) nelle versioni precedenti di Flash. Tuttavia, per gli utenti che utilizzano effettivamente queste vecchie versioni di Flash, direi che gli attacchi CSRF sono i più piccoli dei loro problemi di fronte a vulnerabilità arbitrarie nell'esecuzione di codice. – Artefacto
http://stackoverflow.com/questions/17478731/whats-the-point-of-the-x-requested-with-header | http://security.stackexchange.com/questions/23371/csrf-protection-with-custom-headers-and-without-validating-token –