L'XSS si verifica quando un pezzo di script di origine del browser da fonti di terze parti viene iniettato nel contenuto di un sito Web vulnerabile, che può essere considerato come istruzioni per il browser dell'utente per "presentare" un sito Web. Nella terminologia web, il browser dell'utente ritiene che tali istruzioni siano legittime all'interno del dominio del sito web. Nello scenario XSS, il contenuto restituito contiene script iniettati che in realtà non sono ciò che il sito Web vuole (quindi "cross-sited"), ma il browser continua a pensare che sono legittimi e seguono le istruzioni (incluso l'esecuzione dello script del browser).
Quindi l'attacco XSS è " che sfrutta la fiducia del browser dell'utente sul contenuto restituito da un sito Web vulnerabile" .
CSRF si verifica quando una richiesta può essere attivata da terze parti per essere inviata dal browser di un utente vittima al sito Web vulnerabile ed essere elaborata. Questo è possibile perché dal punto di vista del sito web, la richiesta sembra essere legittima (inviata dal browser dell'utente - > possibile contenere i cookie necessari). Analogamente a XSS, nella terminologia attuale del Web, i siti Web ritengono che tutte le richieste inviate da un browser utente valido siano azioni legittimate realmente "avviate" dall'utente (ad esempio facendo clic sul pulsante desiderato), ma non lo è.
Pertanto, l'attacco CSRF è " che sfrutta la fiducia di un sito Web vulnerabile sulle richieste inviate da un browser utente vittima" . (Che in realtà è l'opposto di XSS)
XSS e CSRF sono spesso confusi perché in molti scenari, CSRF viene sfruttato tramite la vulnerabilità XSS - ma la condizione XSS non è una condizione necessaria per CSRF