javascript / expert
Snippet
Sicheres Brand-Checking mit privaten Feldern
Die Verwendung des 'in'-Operators mit privaten Klassenfeldern ermöglicht einen hochsicheren 'Brand Check'. Im Gegensatz zu 'instanceof' kann dieser nicht durch Prototyp-Manipulation gefälscht werden und ist robust gegenüber Cross-Realm-Problemen.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class SecureToken {#brand;constructor() { this.#brand = true; }static isToken(obj) {try {return #brand in obj;} catch {return false;}}}const valid = new SecureToken();console.log(SecureToken.isToken(valid)); // trueconsole.log(SecureToken.isToken({ #brand: true })); // Syntax Error / False
nodejs
Erklärung
1
return #brand in obj;
Versucht auf ein privates Feld zuzugreifen, um zu prüfen, ob das Objekt von dieser spezifischen Klasse erstellt wurde.
2
static isToken(obj)
Ein statisches Utility, das als sicherer Guard für typ-sensitive Operationen fungiert.