$wsSecurity

$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

Methode

Rückgabe-Typ

Beschreibung

decrypt()

string

Entschlüsselt Daten, die mit encrypt() verschlüsselt wurden.

encrypt()

string

Verschlüsselt Daten mit einem in der Shop-Konfiguration hinterlegten Verschlüsselungsverfahren.

encryptManual()

map

Verschlüsselt Daten wie encrypt(), gibt aber nur die einzelnen Bestandteil separat zurück.

hash()

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ückgabe
string - Entschlüsselte Daten im Klartext.

Parameter

Name

Typ

Pflicht

Beschreibung

Name

Typ

Pflicht

Beschreibung

data

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ückgabe
string - Verschlüsselte Daten im WEBSALE-Format.


Parameter

Name

Typ

Pflicht

Beschreibung

Name

Typ

Pflicht

Beschreibung

id

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.

data

string

ja

Zu verschlüsselnde Daten.

encryptionMethod

string

ja

Verschlüsselungsmethode.
Mögliche Werte:

  • blowfish - Blowfish Blockchiffre im ECB-Modus.

  • aescbc - AES Blockchiffre im CBC-Modus.

  • aesgcm - AES Blockchiffre im GCM-Modus.

  • tdes - Triple DES Blockchiffre im CBC-Modus.

encoding

string

ja

Ausgabe-Encoding: hex oder base64.


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ückgabe
map - Map mit den einzelnen Verschlüsselungsteilen.


Rückgabe-Felder

Rückgabewert

Typ

Beschreibung

Rückgabewert

Typ

Beschreibung

ciphertext

string

Verschlüsselte Daten.

keySalt

string

Schlüssel zur Herleitung des Salts.

tag

string

Auth-Token zur Authentizitätsprüfung (nur bei aesgcm).


Parameter

Name

Typ

Pflicht

Beschreibung

Name

Typ

Pflicht

Beschreibung

id

string

ja

ID der Verschlüsselungskonfiguration aus security.method.encrypt.

data

string

ja

Zu verschlüsselnde Daten.

encryptionMethod

string

ja

Verschlüsselungsmethode.
Mögliche Werte:

  • blowfish - Blowfish Blockchiffre im ECB-Modus.

  • aescbc - AES Blockchiffre im CBC-Modus.

  • aesgcm - AES Blockchiffre im GCM-Modus.

  • tdes - Triple DES Blockchiffre im CBC-Modus.

encoding

string

ja

Ausgabe-Encoding: hex oder base64.

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ückgabe
string - Hash-Wert der Daten.

Parameter

Name

Typ

Pflicht

Beschreibung

Name

Typ

Pflicht

Beschreibung

id

string

ja

ID der Hash-Konfiguration aus security.method.hash.

data

string

ja

Zu hashende Daten.

hashingMethod

string

ja

Hash-Methode: sha256 oder sha512.

encoding

string

ja

Ausgabe-Encoding: hex oder base64.

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") }}

Weiterführende Links