-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Added uppercase HTML elements to sanitize to as lowercase HTML elment… #1044
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
base: master
Are you sure you want to change the base?
Added uppercase HTML elements to sanitize to as lowercase HTML elment… #1044
Conversation
…s are converted to uppercase ones.
Reviewer's Guide by SourceryThis pull request addresses an issue in the SVGCanvas where lowercase HTML tags within foreignObject elements were being converted to uppercase. To resolve this, the sanitizer's whitelist has been updated to include uppercase versions of the HTML elements. Updated class diagram for the HTML sanitizer whitelistclassDiagram
class svgWhiteList_ {
div: []
DIV: []
p: []
P: []
li: []
LI: []
pre: []
PRE: []
ol: []
OL: []
ul: []
UL: []
span: []
SPAN: []
hr: []
HR: []
br: []
BR: []
h1: []
H1: []
h2: []
H2: []
h3: []
H3: []
h4: []
H4: []
h5: []
H5: []
h6: []
H6: []
}
note for svgWhiteList_ "Added uppercase HTML elements to the whitelist"
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
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.
Hey @mscherotter - I've reviewed your changes - here's some feedback:
Overall Comments:
- Instead of adding uppercase versions of the tags, consider converting the tag names to lowercase before checking against the whitelist.
Here's what I looked at during the review
- 🟢 General issues: all looks good
- 🟢 Security: all looks good
- 🟢 Testing: all looks good
- 🟢 Complexity: all looks good
- 🟢 Documentation: all looks good
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Ins't it better to consider the comment of Sourcery? Instead of adding uppercase versions of the tags, consider converting the tag names to lowercase before checking against the whitelist |
@jfhenon there is a bug that I discovered in the code called in showSourceEditor() which calls this.editor.svgCanvas.getSvgString() that generates the SVG xml. In the process of generating that XML, all of the HTML elements in the foreignObject are converted to uppercase. I haven't figured out why, but this fix will mitigate that issue. Since many of the non-HTML elements in the whitelist are camelCase, the suggested method will not work. |
Please accept this pull request until we can figure out how to fix the issue with getSvgString() that converts HTML elements to upper-case. |
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.
I'd prefer a change that fix the issue including with getSgvString
This fixes an issue where the SVGCanvas was converting lowercase foreignObject HTML tags to capitalized ones.
PR description
Checklist
Note that we require UI tests to ensure that the added feature will not be
nixed by some future fix and that there is at least some test-as-documentation
to indicate how the fix or enhancement is expected to behave.
npm test
, ensuring linting passes and that Cypress UI tests keepcoverage to at least the same percent (reflected in the coverage badge
that should be updated after the tests run)
help both for future users and for the PR reviewer.
Summary by Sourcery
Bug Fixes: