Potential fix for code scanning alert no. 22: DOM text reinterpreted as HTML #51
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.
Potential fix for https://github.com/GitTimeraider/Directadmin-Emailforwarder-docker/security/code-scanning/22
The best way to fix this problem is to ensure that any untrusted text (in this case,
selectedDomain) is properly escaped before insertion into an HTML string that is handled byinnerHTML. Inserting untrusted data into HTML without escaping leads to XSS vulnerabilities, since special characters are interpreted by the browser as HTML or script content.General Approach:
Before inserting the error message into
tbody.innerHTML, escape any meta-characters inselectedDomainso they are interpreted as text and not as HTML. The simplest safe approach is to create a helper function (escapeHTML) that replaces<,>,&,",'in the input string with their corresponding HTML entities.Specific steps:
escapeHTMLhelper function in static/dashboard.js.loadForwarders, passselectedDomainthroughescapeHTMLbefore concatenation and insertion intoinnerHTML.Changes required:
escapeHTMLfunction within static/dashboard.js.selectedDomainis inserted into HTML (lines 231 and 233) to use this escaping function.Suggested fixes powered by Copilot Autofix. Review carefully before merging.