mirror of
https://github.com/vector-im/element-call.git
synced 2026-03-19 06:20:25 +00:00
limit to roomId
This commit is contained in:
@@ -82,11 +82,14 @@ describe("UrlParams", () => {
|
||||
getRoomIdentifierFromUrl("", `?roomId=${ROOM_ID}`, "").roomId,
|
||||
).toBe(ROOM_ID);
|
||||
});
|
||||
it("handles params with unprintable characters", () => {
|
||||
it("(roomId with unprintable characters)", () => {
|
||||
const invisibleChar = "\u2066";
|
||||
expect(
|
||||
getRoomIdentifierFromUrl("", `?roomId=${ROOM_ID}${invisibleChar}`, "")
|
||||
.roomId,
|
||||
getRoomIdentifierFromUrl(
|
||||
"",
|
||||
`?roomId=${invisibleChar}${ROOM_ID}${invisibleChar}`,
|
||||
"",
|
||||
).roomId,
|
||||
).toBe(ROOM_ID);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -220,8 +220,6 @@ class ParamParser {
|
||||
private queryParams: URLSearchParams;
|
||||
|
||||
public constructor(search: string, hash: string) {
|
||||
// Replace any non-printable characters that another client may have inserted.
|
||||
search = search.replaceAll(/^[^ -~]+|[^ -~]+$/g, "");
|
||||
this.queryParams = new URLSearchParams(search);
|
||||
|
||||
const fragmentQueryStart = hash.indexOf("?");
|
||||
@@ -260,8 +258,6 @@ export const getUrlParams = (
|
||||
search = window.location.search,
|
||||
hash = window.location.hash,
|
||||
): UrlParams => {
|
||||
// Replace any non-printable characters that another client may have inserted.
|
||||
search = search.replaceAll(/^[^ -~]+|[^ -~]+$/g, "");
|
||||
const parser = new ParamParser(search, hash);
|
||||
|
||||
const fontScale = parseFloat(parser.getParam("fontScale") ?? "");
|
||||
@@ -391,10 +387,14 @@ 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.
|
||||
roomId = roomId.replaceAll(/^[^ -~]+|[^ -~]+$/g, "");
|
||||
if (!roomId.startsWith("!")) {
|
||||
roomId = null;
|
||||
} else if (!roomId.includes("")) {
|
||||
roomId = null;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user