Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a lab to practice countering
cross-site scripting (XSS) vulnerabilities.
I decided to use Python, Flask, and Jinja2,
as they're common and easy to exaplain.
Also, Jinja2 and Flask have a quirk - Jinja2 doesn't escape by default, but when brought in via Flask,
Flask enables it. That gives us an easy excuse to
discuss how to configure templating systems as necessary.
I ended up making this a multi-part lab.
That seemed like the best way to illustrate some important concepts when talking about how to escape values at scale.