CheatSheetSeries la master · OWASPCheatSheetSeries · GitHub
Foaie de trucuri pentru prevenirea scripturilor pe site-uri încrucișate

Acest articol oferă un model simplu pozitiv pentru prevenirea utilizării corectă a codificării ieșirilor de către XSS. În timp ce există un număr mare de vectori de atac XSS, respectarea câtorva reguli simple se poate apăra complet împotriva acestui atac serios.
Acest articol nu explorează impactul tehnic sau de afaceri al XSS. Este suficient să spunem că poate duce la un atacator care câștigă capacitatea de a face orice poate face o victimă prin browserul său.
Atât XSS-ul reflectat, cât și cel stocat pot fi abordate prin efectuarea validării și codificării corespunzătoare pe partea serverului. XSS bazat pe DOM poate fi abordat cu un subset special de reguli descrise în foaia de trucuri pentru prevenirea XSS bazată pe DOM.
Pentru o foaie de cheats despre vectorii de atac în legătură cu XSS, vă rugăm să consultați Foaia de înșelăciune XSS Filter Evasion. Mai multe informații despre securitatea browserului și diferitele browsere pot fi găsite în Manualul de securitate al browserului.
Înainte de a citi această foaie de cheats, este important să înțelegeți fundamental teoria teorie a injecției.
Un model de prevenire XSS pozitiv
Acest articol tratează o pagină HTML ca un șablon, cu sloturi în care unui dezvoltator i se permite să pună date de încredere. Aceste sloturi acoperă marea majoritate a locurilor obișnuite în care un dezvoltator ar putea dori să pună date de încredere. Nu este permisă introducerea de date de încredere în alte locuri în HTML. Acesta este un model de „listă albă”, care neagă tot ceea ce nu este permis în mod specific.
Având în vedere modul în care browserele analizează HTML, fiecare dintre diferitele tipuri de sloturi are reguli de securitate ușor diferite. Când introduceți date de încredere în aceste sloturi, trebuie să luați anumite măsuri pentru a vă asigura că datele nu ies din acel slot într-un context care permite executarea codului. Într-un fel, această abordare tratează un document HTML ca o interogare de bază de date parametrizată - datele sunt păstrate în locuri specifice și sunt izolate de contexte de cod cu codificare.
Acest document stabilește cele mai comune tipuri de sloturi și regulile pentru introducerea în siguranță a datelor de încredere. Pe baza diverselor specificații, a vectorilor XSS cunoscuți și a unei mari teste manuale cu toate browserele populare, am stabilit că regulile propuse aici sunt sigure.
Sloturile sunt definite și sunt furnizate câteva exemple. Dezvoltatori NU AR TREBUI introduceți date în orice alte sloturi fără o analiză foarte atentă pentru a vă asigura că ceea ce fac este sigur. Analizarea browserului este extrem de dificilă și multe personaje inofensive pot fi semnificative în contextul potrivit.
De ce nu pot codifica doar entități HTML date de încredere