-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EREGCSC-2363 -- Prevent frontend from interpreting HTML characters #1502
Merged
Conversation
This file contains 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
✨ See the Django Site in action ✨ |
✨ See the Django Site in action ✨ |
✨ See the Django Site in action ✨ |
cgodwin1
approved these changes
Dec 23, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
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.
Resolves EREGCSC-2363
Description
On the front end of eRegs, we sometimes use Vue's
v-html
directive to insert raw HTML into an element'sinnerHTML
property. We do this for a few reasons:span
with asearch-highlight
class.span
elements on the front end. This would likely still require using thev-html
directive to insert any transformed elements into the DOM because we don't use JSX with Vue.The downside to using the
v-html
directive is that the developer has to ensure that the content inserted into the DOM via thev-html
directive is trusted. We haven't been doing that, and our usage of thev-html
directive resulted in an XSS vulnerability pentest finding on 12/13/14.As such, we need to better ensure that the content inserted into the DOM via the
v-html
directive is sanitized. This Pull Request adds the DOMPurify library to the project to create a custom Vue directive that sanitizes any raw HTML that needs to be inserted directly into the DOM.This pull request changes:
v-sanitize-html
custom directive that uses DOMPurify to sanitize any HTML passed to itv-sanitize-html
directive instead ofv-html
throughout entire applicationSteps to manually verify this change:
v-html
directive is not used anywhere in codebasev-sanitize-html
has replaced all instances ofv-html
dev
: search for "CCIC" on thedev
site. When the Search results page loads, an alert dialog will appear.