Recall & Review
beginner
What is XSS and why is it a security risk in web applications?
XSS (Cross-Site Scripting) is when attackers inject harmful scripts into web pages viewed by others. It can steal data, hijack sessions, or harm users. Preventing XSS keeps websites safe and users protected.
Click to reveal answer
beginner
How does Django's template system help prevent XSS by default?
Django auto-escapes variables in templates, turning special characters like < and > into safe codes. This stops harmful scripts from running when data is shown on pages.
Click to reveal answer
intermediate
What does the Django template filter
safe do, and why should it be used carefully?The
safe filter tells Django not to escape the content, showing it as raw HTML. Use it only when you trust the content, because it can open doors for XSS if used with unsafe data.Click to reveal answer
intermediate
Why should user input never be marked safe without validation in Django templates?
User input can contain harmful scripts. Marking it safe without checking lets attackers run code on users' browsers. Always validate or escape user data to keep the site secure.
Click to reveal answer
beginner
Name two best practices to prevent XSS in Django templates.
1. Let Django auto-escape variables by default.<br>2. Avoid using <code>safe</code> filter on untrusted data.<br>Bonus: Use Django forms and validators to clean user input.Click to reveal answer
What does Django do by default to protect templates from XSS?
✗ Incorrect
Django automatically escapes variables in templates to prevent harmful scripts from running.
Which Django template filter disables escaping and shows raw HTML?
✗ Incorrect
The 'safe' filter tells Django to render content as raw HTML without escaping.
Why is it risky to mark user input as safe in Django templates?
✗ Incorrect
Marking user input as safe without validation can let attackers run harmful scripts (XSS).
Which of these is NOT a good practice to prevent XSS in Django?
✗ Incorrect
Using 'safe' on all user data is unsafe and can cause XSS vulnerabilities.
If you want to display trusted HTML content in Django templates, what should you do?
✗ Incorrect
Use the 'safe' filter only when you trust the HTML content to display it without escaping.
Explain how Django templates prevent XSS attacks by default and when you might need to override this behavior.
Think about how Django treats variables in templates and what happens if you tell it not to escape.
You got /4 concepts.
List best practices to safely handle user input in Django templates to avoid XSS vulnerabilities.
Focus on how to treat user data before showing it on a page.
You got /4 concepts.