mirror of
https://github.com/Nystik-gh/ignis.git
synced 2026-06-17 04:35:53 +00:00
harden demo sessions
This commit is contained in:
@@ -10,6 +10,7 @@ const {
|
||||
sessions,
|
||||
parseCookies,
|
||||
makeStorageName,
|
||||
tryParseUserVaultName,
|
||||
touchSession,
|
||||
} = require("./demo-sessions");
|
||||
|
||||
@@ -28,6 +29,20 @@ function wireWebSocket(server) {
|
||||
if (userVault && !userVault.startsWith("demo-")) {
|
||||
u.searchParams.set("vault", makeStorageName(sessionId, userVault));
|
||||
req.url = u.pathname + u.search;
|
||||
} else if (
|
||||
userVault &&
|
||||
userVault.startsWith("demo-") &&
|
||||
tryParseUserVaultName(sessionId, userVault) === null
|
||||
) {
|
||||
// An already-prefixed vault that isn't this session's: refuse the upgrade.
|
||||
const socket = rest[0];
|
||||
|
||||
if (socket && socket.writable) {
|
||||
socket.write("HTTP/1.1 403 Forbidden\r\n\r\n");
|
||||
socket.destroy();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
touchSession(sessionId);
|
||||
|
||||
Reference in New Issue
Block a user