XSS (Cross-Site Scripting) β saytda foydalanuvchi brauzerida begona JavaScript bajariladi. Cookie o'g'irlash, session hijack, sahifa o'zgartirish.
Turlari
1) Reflected β URL parametrida JS, sahifaga aks etadi. 2) Stored β DB'ga saqlanib, har ko'rganda ishga tushadi (sharhlar bo'limi). 3) DOM-based β JS o'zi tomonidan kiritiladi.
Misol
Sayt: 'Salom <?= $_GET['name'] ?>'. Foydalanuvchi URL: ?name=<script>alert('XSS')</script> β alert chiqadi. Real hujumda β cookie o'g'irlash.
Asosiy himoya: Output escaping
PHP: htmlspecialchars($input, ENT_QUOTES, 'UTF-8'). Twig, Blade, Vue.js β avtomatik escape qiladi.
Content Security Policy (CSP)
HTTP header: Content-Security-Policy: default-src 'self'. Sayt boshqa domendan JS, image, style yuklab olishni man qiladi. Inline JS β 'unsafe-inline' yoki nonce orqali.
HttpOnly cookies
Session cookie: Set-Cookie: session=...; HttpOnly. JavaScript o'qib bo'lmaydi. XSS bo'lsa ham cookie xavfsiz.
Input validation
Whitelist β faqat ruxsat etilgan ranglar/raqamlar. URL valida bo'lsa β fileter_var. Email β filter_var($e, FILTER_VALIDATE_EMAIL).
Modern framework
React, Vue, Angular β JSX/template'larda avtomatik escape. dangerouslySetInnerHTML β qachon ishlatishni bilish kerak.
WAF
Cloudflare/ModSecurity XSS pattern'larni server darajasida to'sadi.