Back to Blog
Featuredසිංහල

මොකද්ද මේ XSS එහෙමත් නැත්නම් Cross-Site Scripting කියන්නෙ

Pubudu Wijesundara
3 min read
... views
#CyberSecurity#XSS#WebSecurity#WebDevelopment#SoftwareEngineering#InfoSec#CyberAwareness#ApplicationSecurity#sinhala

XSS Banner

සරලවම මේකෙන් වෙන්නේ යම්කිසි කෙනෙක් ඔයා trust කරන website එකකට "malicious" JavaScript code එකක් ඇතුළු කරන එක. ඒ web site එකට ගියපු ගමන් ඔයාගේ browser එක හිතන්නේ මේක web site එකෙන්ම ආපු දෙයක් කියල. අන්තිමට ඒ malicious script එක ඔයාගේ browser එක ඇතුළෙ run වෙන්න ගන්නව.


XSS වැඩ කරන්නේ කොහොමද?

මේක හරියට කෑම කඩේක Menu එකට හොරෙන් කවුරුහරි වස එකතු කරනවා වගේ වැඩක්.

  1. Step 1: web site එකක් usersලගෙන් inputs ගන්නව (Eg: Comment box, Search bars, Registration forms).

  2. Step 2: මේ inputs නිසි ලෙස පරීක්ෂා කරන්නේ (Validation) නැතුව web site එක accept කරනව.

  3. Step 3: Hacker කෙනෙක් සාමාන්‍ය නමක් වෙනුවට පොඩි JavaScript code එකක් insert කරනව.

  4. Step 4: වෙන user කෙනෙක් මේ web page එකට ආපු ගමන්, අර hacker දාපු code එක execute වෙනව.


ඇයි XSS මෙච්චර භයානක?

XSS හරහා Hacker කෙනෙක්ට මේ දේවල් කරන්න පුළුවන්:

  • Cookies සහ Session Tokens හොරකම් කරන්න (ඒ කියන්නේ ඔයාගේ Account එකට Password නැතුවම ලොග් වෙන්න පුළුවන්).

  • web page එකේ තියෙන දේවල් change කරන්න.

  • ඔයාව වෙනත් web sites වලට redirect කරන්න.

  • Type කරන දේවල් (Passwords පවා) බලාගන්න (Keylogging).


XSS වල ප්‍රධාන වර්ග 3

1. Stored XSS (Most dangerous type)

මේකෙදි වෙන්නෙ hacker insert කරන Script එක web site එකේ Database එකේම store වෙනව.

  • Eg: Hacker කෙනෙක් Comment එකක් විදිහට Script එකක් add කරනව. ඒ Comment එක බලන හැමෝටම මේ Attack එකට face කරන්න වෙනව.

2. Reflected XSS

මේක ගොඩක් වෙලාවට වෙන්නේ Link එකක් හරහා.

  • Eg: Hacker කෙනෙක් ඔයාට mail එකක් එවනව මේ වගේ Link එකක් එක්ක: https://example.com/search?q=<script>alert('Hacked')</script>. ඔයා මේක Click කරපු ගමන් Script එක Run වෙනව.

3. DOM-Based XSS

මේක වෙන්නෙ සම්පූර්ණයෙන්ම Browser එක ඇතුළෙ. server එකට සම්බන්ධයක් නැතුවම JavaScript හරහා data handling වලදි වෙන වැරැද්දක් නිසා තමයි මේක වෙන්නෙ.


XSS වලින් බේරෙන්නේ කොහොමද? (for Developers)

ඔයා developer කෙනෙක් නම්, මේ දේවල් අනිවාර්යයෙන් මතක තියාගන්න:

  • Never Trust User Inputs: හැම input data එකක්ම check කරන්න.(Data Validation)

  • Output Encoding: data display කරද්දි ඒව "Escape" කරන්න. Display the characters, but do not execute them. (HTML, JS context එකට අනුව).

  • Use Safe APIs: innerHTML වෙනුවට textContent වගේ ආරක්ෂිත method use කරන්න.

  • CSP (Content Security Policy): web site එකේ Run වෙන්න පුළුවන් Script මොනවද කියල සීමා කරන්න.

  • Use Modern Frameworks: React, Angular හෝ Vue වගේ Frameworks පාවිච්චි කරද්දී ගොඩක් වෙලාවට XSSවලින් Automatically ම protection එකක් ලැබෙනව.

@PubuduWijesundara
Until next time — keep hacking your way forward.

Related Articles