UNPKG

contains-path-traversal

Version:
21 lines • 610 B
// src/index.ts var MAX_DECODE_ROUNDS = 4; function containsPathTraversal(pathname, { maxIterations } = { maxIterations: MAX_DECODE_ROUNDS }) { return recursiveDecode(pathname, 0, maxIterations).split("/").includes(".."); } function recursiveDecode(string, iteration, maxIterations) { if (iteration >= maxIterations) return string; try { const decoded = decodeURIComponent(string); if (decoded === string) return string; return recursiveDecode(decoded, iteration + 1, maxIterations); } catch { return string; } } export { containsPathTraversal }; //# sourceMappingURL=index.js.map