Potential fix for code scanning alert no. 155: Client-side cross-site scripting #2166
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/cartridge-gg/controller/security/code-scanning/155
To eliminate any risk of client-side cross-site scripting or open redirect, ensure that the validated URL is always absolute, uses only "http:" or "https:" protocols, and cannot be "javascript:" or another dangerous protocol—even in edge cases. In the redirection step, use the already-parsed result from
validateRedirectUrl(not the raw user input) by returning and reusing the safely-parsed absolute URL (e.g., viaurl.href). This prevents manipulation via tricky input strings that might be mis-parsed. Adjust the validator to always return the canonical, validated,url.hrefand update the redirector to strictly use this, never the rawredirectUrlstring. This also future-proofs against possible developer changes that introduce new vector(s).Steps needed:
validateRedirectUrl, if valid, return the parsed/canonicalized URL as a property (e.g.,validatedUrlor similar) along with theisValidflag.safeRedirect, use thisvalidatedUrlinstead of the originalredirectUrlfor assignment towindow.location.href.URLis built in.Suggested fixes powered by Copilot Autofix. Review carefully before merging.