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.
Bankda formalarni inyeksiyalardan har kuni himoya qilaman. Ko'pchilik XSS'ni 'nazariy biladi'. Inyeksiya haqiqatan ishlaydigan, lekin xavfsiz — sandbox ichidagi demo qilmoqchi edim.
`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.
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.
Bitta formaning uch rejimi
Quyida — uch xil usulda render qilingan "sharh formasi". Payload kiriting (tugma klassik <img onerror> qo'yadi) va rejimlarni almashtiring: zaif → ekранlangan → CSP. Demo izolyatsiyalangan sandbox-iframe ichida, shuning uchun inyeksiya undan tashqariga chiqolmaydi.
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.