javascript / expert
Snippet
Einschränken von Dyn-Eval Template-Geltungsbereichen durch Javascript-Proxy-Isolations-Traps
Bei der Ausführung benutzerdefinierter Ausdrucks-Strings oder dynamischer Templates unterbinden JavaScript-Proxy-Traps in Kombination mit der 'has'-Trap den Zugriff auf gefährliche globale Browser-Objekte und beschränken die Variablenauflösung strikt auf autorisierte Eigenschaften.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
export function createSecureScope(allowedContext) {return new Proxy(allowedContext, {has(target, key) {if (['window', 'document', 'eval', 'Function'].includes(key)) {throw new Error(`Access to restricted global '${key}' is prohibited.`);}return Reflect.has(target, key) || key in globalThis;},get(target, key, receiver) {if (key === Symbol.unscopables) return undefined;return Reflect.get(target, key, receiver);}});}
vue
Erklärung
1
has(target, key) {
Fängt Symbol-Auflösungsprüfungen ab, die von Scope-Evaluierungs-Engines während der Ausdrucksausführung verwendet werden.
2
throw new Error(`Access to restricted global...`);
Wirft explizite Sicherheits-Ausnahmen, wenn versucht wird, auf sensible globale Browser-APIs zuzugreifen.