Enable autoescape by default in Jinja2Templates#3146
Open
RinZ27 wants to merge 1 commit intoKludex:mainfrom
Open
Enable autoescape by default in Jinja2Templates#3146RinZ27 wants to merge 1 commit intoKludex:mainfrom
RinZ27 wants to merge 1 commit intoKludex:mainfrom
Conversation
fd4589c to
bc466d6
Compare
Author
|
@Kludex, noticed #3148 covers the autoescape change. Moving forward with that is cool, though I'm happy to sync this PR with the new docs refactor if keeping the Missing implementation for |
47374a4 to
6e35ce1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Noticed that
Jinja2Templatescurrently defaults to havingautoescapedisabled. It puts the burden on the developer to remember to enable it, which I've seen lead to XSS vulnerabilities in applications that render user-provided content.While investigating, I also discovered that
Jinja2Templateswas missing support for**env_optionsin its constructor, making it difficult to customize the environment even though the documentation suggested it was supported.Updated the implementation to:
jinja2.select_autoescape()by default for HTML/XML files to ensure a secure baseline.**env_optionsin theJinja2Templatesconstructor, allowing full customization of the Jinja2 environment.Changes
Jinja2Templates.__init__to accept and use**env_options.autoescapeby default usingselect_autoescape()if not explicitly provided.tests/test_templates.pyto verify both the secure default and the ability to override it.Checklist