Escape Unsafe HTML Characters in addon-serialize #5020
Merged
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.
I was testing the addon-serialize serializeAsHTML functionality and noticed that it can produce invalid/unsafe html because it isn't escaping "<" and "&" characters in the output spans. Wrote a quick patch that escapes those two dangerous characters in the output.
Note that a lot of functions/libraries want to escape other characters (like quotes, greater than, etc.). These are only necessary to escape unless you are also worried about attribute values. These characters do not need to be escaped when you are only dealing with characters between tags (text content) which is the case here.
I added a test (which passes), but didn't put the more canonical "<script>alert("hello")</script>" test in because the test terminal only has 10 columns. All of the other serialize tests continue to pass.