Potential fix for code scanning alert no. 1: DOM text reinterpreted as HTML #4
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/softwaremill/semantic-ai-validator/security/code-scanning/1
To fix the problem, the insertion of the untrusted file name into the DOM must be performed safely. The best practice is to either:
textContent(orinnerText) to insert untrusted or dynamic strings, as it escapes content by default, ORinnerHTML.For this scenario, the most straightforward fix is to avoid
innerHTMLwhere not strictly necessary. We can clear and construct the information using plain text nodes and DOM manipulation (e.g.,textContent) so that no part of the file name can be interpreted as markup. If some markup (such as the 📄 emoji or extra<span>for oversize) must still be included, only the static/known-safe markup should be inserted withinnerHTML, while the untrusted content is injected usingtextContentor as a DOM node.Specifically:
fileInfo.innerHTML = ...with logic that sets file info usingtextContentforfile.name.<span>element created withtextContent, not via concatenated HTML.No new imports are needed. The changes are limited to the logic interacting with the file name when constructing the DOM for file info.
Suggested fixes powered by Copilot Autofix. Review carefully before merging.