Cross-Site Scripting (XSS) is a security vulnerability that allows attackers to inject malicious scripts into web pages viewed by other users. It can lead to session hijacking, data theft, and other attacks on users through their browsers.
In depth
XSS occurs when a web application accepts input from users and includes that input in webpages without proper validation or escaping. This allows attackers to send malicious JavaScript code through user input, which is then executed in the browser of anyone who views the page. There are three main types of XSS: stored, reflected, and DOM-based. Stored XSS persists on the server, affecting all users who access the compromised page. Reflected XSS occurs when input is immediately reflected back in a response, often via a URL, while DOM-based XSS exploits the client-side scripts of the application. Properly validating and sanitizing user inputs, along with implementing Content Security Policy (CSP), can effectively mitigate XSS vulnerabilities.
Example scenario
Consider a social media platform where users can post comments. If the application doesn't sanitize comments properly, a user could submit a comment containing a script that steals session cookies. When other users view that comment, the script runs, sending the cookies to the attacker. This can lead to unauthorized access to their accounts, demonstrating how devastating XSS can be if left unchecked.
Common mistakes
Developers often underestimate the importance of output encoding and may rely solely on input validation, believing that will suffice to prevent XSS. This is a mistake because input validation can be bypassed easily if proper output encoding isn't applied when displaying user-generated content. Another common mistake is not implementing a Content Security Policy, leaving applications vulnerable to exploitation through scripts from unauthorized sources.
Follow-up questions
- What are some methods to prevent XSS attacks?
- Can you explain the difference between stored and reflected XSS?
- What tools can help identify XSS vulnerabilities in an application?
- How does a Content Security Policy work in mitigating XSS?

Want all 2,000 questions in one PDF?
- Short answers, in-depth explanations, common mistakes and follow-ups
- 89 topics, from Beginner to Architect, with a clickable contents list
- 226 extra questions that are not on this website
- Free Bonus Pack: 30-day study plan, behavioral questions, salary scripts
Includes 226 extra questions that are not on this site, plus a free Bonus Pack.
Get both books for $9.99 (save $2.99):
The material stays free to read online. This is the organised, offline, print-ready PDF edition. Secure payment by PayPal; your personal download link is emailed after payment is confirmed. Digital product, no shipping.