IS
Barcha tajribalar
jonli

XSS-playground — inyeksiya formani qanday buzadi

<script> tegli 'sharh' kiriting va u zaif rejimda qanday ishga tushishini, ekранlash va CSP uni qanday o'chirishini ko'ring.

laboratoriya yozuvi
Nega qildim

Bankda formalarni inyeksiyalardan har kuni himoya qilaman. Ko'pchilik XSS'ni 'nazariy biladi'. Inyeksiya haqiqatan ishlaydigan, lekin xavfsiz — sandbox ichidagi demo qilmoqchi edim.

Nimani o'rgandim

`innerHTML` va `textContent` orasidagi farq — bu tom ma'noda teshik bilan uning yo'qligi orasidagi farq. CSP esa ikkinchi chiziq: ekранlashni biror joyda unutsangiz ham, unsafe-inline'siz `script-src` inyeksiyani ishga tushirmaydi.

Qayerda sindi

Demo o'zi — nazorat ostidagi 'buzilish'. Inyeksiya haqiqatan ishlashi, lekin asosiy saytga tegmasligi uchun uni sandbox va alohida, ataylab bo'shashtirilgan CSP'li iframe'ga chiqardim.

Stek
Reactsandbox iframeCSP

Bitta formaning uch rejimi

Quyida — uch xil usulda render qilingan "sharh formasi". Payload kiriting (tugma klassik <img onerror> qo'yadi) va rejimlarni almashtiring: zaifekранlanganCSP. Demo izolyatsiyalangan sandbox-iframe ichida, shuning uchun inyeksiya undan tashqariga chiqolmaydi.

jonli demo· sandbox
Demo yuklanmoqda…

Bu yerda nima muhim

CSP rejim zaif innerHTMLni qoldiradi, lekin Content-Security-Policy: script-src 'self' sarlavhasini qo'shadi. Qo'yilgan skript ham ishga tushmaydi — siyosat inline kodni bloklaydi. Bu — chuqur himoya: kirishda ekранlash, CSP esa sug'urta sifatida.

XSS-playground — inyeksiya formani qanday buzadi — Lab