A tartalom azonnal visszatérhet, tárolva később kiszolgálható, vagy nem biztonságos kliensoldali dokumentummanipuláción keresztül kerülhet be. A végrehajtás az oldal origójával és elérhető felhasználói kontextusával cselekedhet, befolyásolva a megjelenített tartalmat, adatokat vagy műveleteket.
A megelőzés attól függ, hogy a nem megbízható adat kívül marad-e a végrehajtható kontextusokon. Az alkalmazásoknak biztonságos keretrendszer-viselkedést és sink-felületeket kell használniuk, kontextusspecifikus kimeneti kódolást kell alkalmazniuk, és szanitálniuk kell a tartalmat, amikor a felhasználók szándékosan adhatnak korlátozott jelölést.
Legfontosabb pontok
Gyakori formákA reflected XSS nem biztonságos bemenetet ad vissza egy válaszban, a tárolt XSS korábban mentett tartalmat szolgál ki, a Document Object Model-alapú XSS pedig nem biztonságos kliensoldali adatfolyamból és végrehajtásból ered.
Elsődleges megelőzésRészesítse előnyben az értékeket szövegként kezelő sablonozást és böngészőfelületeket, kódolja a kimenetet a pontos kontextusához, validálja a veszélyes URL-eket, kerülje a felesleges dinamikus kódvégrehajtást, és használjon karbantartott szanitereket a megengedett jelöléshez.
VisszaszorításAlkalmazzon jól megtervezett Content Security Policy-t, védje az érzékeny cookie-kat, minimalizálja az exponált böngészőadatokat, és korlátozza a harmadikfél-szkripteket mélységi védelemként, nem a biztonságos adatkezelés helyettesítőjeként.
Fontos korlátA bemenetvalidálás, webalkalmazási tűzfal vagy Content Security Policy önmagában nem tudja lefedni minden végrehajtási kontextust vagy kliensoldali útvonalat. A böngésző same-origin szabályzata nem akadályozza meg a megbízható oldal által maga bevezetett kódot.