mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-19 20:10:39 +09:00
25 lines
552 B
TypeScript
25 lines
552 B
TypeScript
|
|
import path from "node:path";
|
||
|
|
|
||
|
|
const SESSION_CWD_SYSTEM_ROOTS = new Set([
|
||
|
|
"/",
|
||
|
|
"/tmp",
|
||
|
|
"/var",
|
||
|
|
"/var/tmp",
|
||
|
|
"/var/run",
|
||
|
|
"/usr",
|
||
|
|
"/etc",
|
||
|
|
"/proc",
|
||
|
|
"/sys",
|
||
|
|
"/dev",
|
||
|
|
"/run",
|
||
|
|
"/private",
|
||
|
|
"/private/tmp",
|
||
|
|
]);
|
||
|
|
|
||
|
|
export function isUnsafeSessionWorkspaceCwd(cwd: string | null | undefined): boolean {
|
||
|
|
const value = typeof cwd === "string" && cwd.trim().length > 0 ? cwd.trim() : null;
|
||
|
|
if (!value) return false;
|
||
|
|
const normalized = path.normalize(value.replace(/\/+$/, "") || "/");
|
||
|
|
return SESSION_CWD_SYSTEM_ROOTS.has(normalized);
|
||
|
|
}
|