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.