Cross-Site Scripting (XSS)
11 lectura mínimaSeguretat
Cross-site scripting és la vulnerabilitat en què un atacant injecta JavaScript que s'executa al navegador d'un altre usuari com si fos part del lloc legítim. El dany va des de robar galetes de sessió fins a fer trucades a l'API en nom de la víctima. XSS ha estat al Top 10 de l'OWASP durant dues dècades i no mostra signes de marxar.
El cos complet de l'article es proporciona en anglès a continuació.
pages.learningArticles.cross-site-scripting.bodyHtml
Preguntes freqüents
- XSS encara és rellevant?
- Sí. Les enquestes recents d'OWASP mostren XSS en gairebé totes les aplicacions web. Els marcs moderns han reduït la freqüència, però la llarga cua de les aplicacions heretades, el codi personalitzat i els casos extrems manté XSS una de les vulnerabilitats web més informades. Les plataformes de recompenses d'errors veuen centenars d'informes XSS per setmana.
- Quina diferència hi ha entre XSS i CSRF?
- XSS injecta codi maliciós al lloc de confiança, executant-se amb els privilegis del lloc. CSRF (Cross-Site Request Forgery) enganya el navegador de la víctima perquè faci una sol·licitud al lloc de confiança des d'un origen diferent, utilitzant la sessió de la víctima. Sonen semblants però tenen mecanismes i defenses diferents.
- La galeta HttpOnly protegeix contra XSS?
- Parcialment. HttpOnly impedeix que JavaScript llegeixi la galeta a través de document.cookie, derrotant els atacs d'exfiltració de cookies. La càrrega útil XSS encara pot fer sol·licituds autenticades perquè el navegador envia la galeta automàticament: HttpNomés atura una classe específica de dany, no l'atac més ampli.
- Pot un CSP eliminar XSS completament?
- Un CSP estricte (no basat, no "insegur en línia" o "eval no segur") és el més semblant a una bala de plata. No impedeix la injecció en si, però evita que s'executi la càrrega útil injectada. Combinat amb la sortida de sortida a l'aplicació, CSP estricte fa que l'explotació pràctica de XSS sigui molt difícil.
- Són immunes els llocs estàtics?
- No del tot. XSS basat en DOM encara funciona en llocs estàtics si el seu JS del costat del client utilitza paràmetres d'URL de manera insegura. Els llocs HTML pur sense JavaScript no tenen XSS. La majoria dels "llocs estàtics" moderns utilitzen prou JavaScript perquè XSS sigui un possible (encara que rar) problema.