Trim extra characters from roomId parameter in URL (#3412)

* Trim roomId when parsing from URL

* fix char

* fixup

* limit to roomId

* Add a comment
This commit is contained in:
Will Hunt
2025-07-22 20:11:53 +01:00
committed by GitHub
parent 7dd45acd29
commit 3145bafd5e
2 changed files with 20 additions and 4 deletions

View File

@@ -398,10 +398,16 @@ export function getRoomIdentifierFromUrl(
// Make sure roomId is valid
let roomId: string | null = parser.getParam("roomId");
if (!roomId?.startsWith("!")) {
roomId = null;
} else if (!roomId.includes("")) {
roomId = null;
if (roomId !== null) {
// Replace any non-printable characters that another client may have inserted.
// For instance on iOS, some copied links end up with zero width characters on the end which get encoded into the URL.
// This isn't valid for a roomId, so we can freely strip the content.
roomId = roomId.replaceAll(/^[^ -~]+|[^ -~]+$/g, "");
if (!roomId.startsWith("!")) {
roomId = null;
} else if (!roomId.includes("")) {
roomId = null;
}
}
return {