Thuta Learning
ရှာဖွေရန်
AdvancedSecuritybeginner

XSS (Cross-Site Scripting) ဆိုတာ ဘာလဲ

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • XSS (Cross-Site Scripting) ဆိုတာ ဘာလဲ ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • လက်တွေ့ scenario ထဲမှာ ဒီ concept ကို ချက်ချင်း အသုံးချတတ်မယ်
  • ကိုယ်တိုင်နဲ့ တခြားသူများအတွက်ပါ security risk ကို ရှောင်တတ်အောင် လုပ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

Stored XSS — attacker ရေးတဲ့ script ကို database ထဲ သိမ်းပြီး page ကို ဝင်ကြည့်တဲ့သူတိုင်းအတွက် run ဖြစ်ပါတယ် (ဥပမာ comment section)။ Reflected XSS — malicious link ကို victim click လိုက်တာနဲ့ URL parameter ထဲက script ချက်ချင်း run ဖြစ်ပါတယ်။ Script run ဖြစ်သွားရင် victim ရဲ့ cookie/session token ကို steal လုပ်နိုင်ပြီး victim ဟန်ဆောင်ပြီး account ကို access လုပ်နိုင်ပါတယ်။

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Comment box ထဲ <script>alert('hacked')</script> ရိုက်ထည့်ပြီး page ပေါ် raw HTML အဖြစ် render ဖြစ်သွားရင် XSS vulnerability ရှိတယ်ဆိုတာ သိနိုင်ပါတယ် (harmless alert box နဲ့ testing)။ Defense method — output encoding (user input ကို page ပေါ်ပြသခင် HTML entity အဖြစ် escape လုပ်ခြင်း, <script> ကို &lt;script&gt; လို ပြောင်းခြင်း) နဲ့ Content Security Policy (CSP) header သတ်မှတ်ခြင်းက script run ခွင့်ကို ကန့်သတ်ပေးပါတယ်။

အတူတူ ကြည့်မယ်

html
<!-- Vulnerable: user input rendered as raw HTML -->
<div>Comment: <script>alert('hacked')</script></div>

<!-- Safe: output-encoded -->
<div>Comment: &lt;script&gt;alert('hacked')&lt;/script&gt;</div>
<!-- Browser displays the text literally instead of running it -->
You should see
XSS payload တစ်ခုက ဘယ်လို run ဖြစ်တယ်၊ output encoding က ဘယ်လို ကာကွယ်ပေးတယ်ဆိုတာ ရှင်းပြနိုင်မည်။

၅ မိနစ် စမ်းကြည့်

Comment/feedback form ရှိတဲ့ website (permission ရှိသူ့ ပိုင်ဆိုင်တာ ဒါမှမဟုတ် intentionally vulnerable practice site) မှာ harmless <script>alert(1)</script> testing ကို concept-level ဖော်ရေးကြည့်ပါ (production site မှာ တကယ်မစမ်းရ)။

သတိလေးတစ်ချက်

Permission မရှိတဲ့ website ပေါ်မှာ XSS payload ကို 'စမ်းကြည့်' ခြင်းသည် တရားဥပဒေအရ ပြစ်မှုဖြစ်နိုင်ပါတယ် — ကိုယ်ပိုင် test environment ဒါမှမဟုတ် bug bounty program ခွင့်ပြုထားတဲ့ site မှာသာ practice ပါ။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • XSS ကို SQL Injection နဲ့ ရောနားလည်ခြင်း — SQLi က database ကို ပစ်မှတ်ထား, XSS က browser/user ကို ပစ်မှတ်ထား
  • Client-side JavaScript validation ကိုပဲ XSS defense အဖြစ် အားကိုးခြင်း

အခု ကိုယ်တိုင် စမ်းကြည့်

Comment/feedback form ရှိတဲ့ website (permission ရှိသူ့ ပိုင်ဆိုင်တာ ဒါမှမဟုတ် intentionally vulnerable practice site) မှာ harmless <script>alert(1)</script> testing ကို concept-level ဖော်ရေးကြည့်ပါ (production site မှာ တကယ်မစမ်းရ)။

You'll know it worked when: XSS payload တစ်ခုက ဘယ်လို run ဖြစ်တယ်၊ output encoding က ဘယ်လို ကာကွယ်ပေးတယ်ဆိုတာ ရှင်းပြနိုင်မည်။

XSS (Cross-Site Scripting) ဆိုတာ ဘာလဲ | Thuta Learning