$wsSecurity
Mit dem $wsSecurity Modul können Sie Daten verschlüsseln, entschlüsseln und hashen. Es dient dem Schutz sensibler Daten wie Passwörter, Token oder persönliche Informationen. In diesem Abschnitt erfahren Sie, wie Sie die verschiedenen Verschlüsselungs- und Hash-Methoden einsetzen können.
Inhaltsverzeichnis
Modulübersicht
Beispiel / Ausschnitt über $wsSecurity
{{= $wsSecurity | json }}
JSON-Ausgabe
{
"decrypt": "ƒ()",
"encrypt": "ƒ()",
"encryptManual": "ƒ()",
"hash": "ƒ()"
}Anmerkung: "ƒ()" kennzeichnet eine Funktion.
Methoden in der Übersicht
Methode | Rückgabe-Typ | Beschreibung |
|---|---|---|
| string | Entschlüsselt Daten, die mit |
| string | Verschlüsselt Daten mit einem in der Shop-Konfiguration hinterlegten Verschlüsselungsverfahren. |
| map | Verschlüsselt Daten wie |
| string | Berechnet einen kryptografischen Hash-Wert der Eingabedaten. |
Templates
Die Sicherheitsfunktionen können in jedem Template verwendet werden, typischerweise bei:
Formularen mit sensiblen Daten
Token-Generierung für Links
Passwort-Verarbeitung im Registrierungsprozess
Datenübergabe an externe Systeme
Variablen
Für $wsSecurity stehen keine Variablen zur Verfügung.
Methoden
$wsSecurity.decrypt()
Entschlüsselt Daten, die mit $wsSecurity.encrypt() verschlüsselt wurden.
Signatur$wsSecurity.decrypt(data)
Rückgabestring - Entschlüsselte Daten im Klartext.
Parameter
Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| string | ja | Verschlüsselte Daten im WEBSALE-Format. |
Beispiel, das verschlüsselte Daten entschlüsselt.
{{ var $myDecryptedData = $wsSecurity.decrypt($encryptedData) }}
$wsSecurity.encrypt()
Verschlüsselt Daten mit einem in der Shop-Konfiguration hinterlegten Verschlüsselungsverfahren. Die verschlüsselten Daten können nur mit decrypt() wieder entschlüsselt werden.
Signatur$wsSecurity.encrypt(id, data, encryptionMethod, encoding)
Rückgabestring - Verschlüsselte Daten im WEBSALE-Format.
Parameter
Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| string | ja | ID des konfigurierten Verschlüsselungsverfahrens aus https://websale.atlassian.net/wiki/spaces/WSDOKU/pages/3603791877/security+-+Sicherheitsregeln#3.-security.method---Sensible-Daten-verschl%C3%BCsseln. |
| string | ja | Zu verschlüsselnde Daten. |
| string | ja | Verschlüsselungsmethode.
|
| string | ja | Ausgabe-Encoding: |
Beispiel, das Daten mit AES-GCM verschlüsselt.
{{ var $myEncryptedData = $wsSecurity.encrypt("token_v1", "Sensible Daten", "aesgcm", "base64") }}
$wsSecurity.encryptManual()
Verschlüsselt Daten wie encrypt(), gibt aber die einzelnen Bestandteile (Ciphertext, Salt, Auth-Tag) separat zurück. Nützlich für die Integration mit externen Systemen, die ein anderes Format erwarten.
Signatur$wsSecurity.encryptManual(id, data, encryptionMethod, encoding)
Rückgabemap - Map mit den einzelnen Verschlüsselungsteilen.
Rückgabe-Felder
Rückgabewert | Typ | Beschreibung |
|---|---|---|
| string | Verschlüsselte Daten. |
| string | Schlüssel zur Herleitung des Salts. |
| string | Auth-Token zur Authentizitätsprüfung (nur bei |
Parameter
Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| string | ja | ID der Verschlüsselungskonfiguration aus |
| string | ja | Zu verschlüsselnde Daten. |
| string | ja | Verschlüsselungsmethode.
|
| string | ja | Ausgabe-Encoding: |
Beispiel, das Daten verschlüsselt und einzeln verwendet:
{{ var $myResult = $wsSecurity.encryptManual("token_v1", "Sensible Daten", "aesgcm", "hex") }}
Ciphertext: {{= $myResult.ciphertext }}
Salt: {{= $myResult.keySalt }}
Tag: {{= $myResult.tag }}
$wsSecurity.hash()
Berechnet einen kryptografischen Hash-Wert der Eingabedaten. Hash-Werte sind Einweg-Verschlüsselungen – sie können nicht zurück in die Originaldaten umgewandelt werden. Typischer Anwendungsfall: Passwort-Speicherung.
Signatur$wsSecurity.hash(id, data, hashingMethod, encoding)
Rückgabestring - Hash-Wert der Daten.
Parameter
Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| string | ja | ID der Hash-Konfiguration aus |
| string | ja | Zu hashende Daten. |
| string | ja | Hash-Methode: |
| string | ja | Ausgabe-Encoding: |
Beispiel, das ein Passwort mit einem konfigurierten Verfahren hasht.
{{ var $myHashedPassword = $wsSecurity.hash("password_v1", $userPassword) }}
Aktionen
Für $wsSecurity stehen keine Aktionen zur Verfügung. Die Verschlüsselung und das Hashing erfolgen direkt über die Methoden des Moduls.
Beispiele
In diesem Beispiel werden sensible Daten verschlüsselt und später wieder entschlüsselt.
{{ var $encrypted = $wsSecurity.encrypt("token_v1", "Geheime Nachricht", "aesgcm", "base64") }}
{{ var $decrypted = $wsSecurity.decrypt($encrypted) }}Passwort hashen
In diesem Beispiel wird ein Passwort gehasht. Der Hash-Wert kann später mit einem erneut gehashten Passwort verglichen werden.
{{ var $hashedPassword = $wsSecurity.hash("password_v1", $password, "sha256", "hex") }}