Worum geht’s?
Access sendet oder empfängt sensible Daten.
WordPress steht im Netz.
Zwischen beiden läuft ein JSON-basierter Austausch – aber bitte verschlüsselt.
Denn Klartext ist keine Option mehr. Auch nicht „nur intern“.
Ich zeige Dir, wie Du in beiden Richtungen verschlüsselte Payloads verarbeitest – mit überschaubarem Aufwand.
Warum nicht einfach HTTPS?
HTTPS schützt nur die Transportstrecke.
Nicht:
- den Inhalt bei Speicherung im Log
- den Zugriff durch fehlerhafte Plugins
- die API bei Cross-Server-Integrationen
Deshalb: Payload selbst verschlüsseln.
Architekturüberblick
| Komponente | Aufgabe |
|---|---|
| Access | JSON bauen, AES verschlüsseln, senden |
| WordPress | JSON entschlüsseln, verarbeiten, antworten |
| Gemeinsames Geheimnis | z. B. AES-Schlüssel (256 Bit) |
Wir reden hier nicht über asymmetrische Kryptografie.
AES reicht – wenn Du den Schlüssel sicher aufbewahrst.
Schritt 1: AES-Verschlüsselung in Access (VBA)
VBA kann kein AES nativ.
Aber über CAPICOM oder Windows Crypto API klappt’s.
Beispiel mit CAPICOM:
Public Function VerschlüsselnAES(payload As String, key As String) As String
Dim crypto As Object
Set crypto = CreateObject("CAPICOM.EncryptedData")
crypto.Algorithm.Name = 4 ' CAPICOM_ENCRYPTION_ALGORITHM_AES
crypto.Algorithm.KeyLength = 3 ' 256 Bit
crypto.SetSecret key
crypto.Content = payload
VerschlüsselnAES = crypto.Encrypt(1) ' Base64
End Function
Achtung: CAPICOM muss registriert sein.
Sonst nimm ein kleines COM-DLL-Wrapper-Modul.
Schritt 2: Senden der Payload aus Access
Public Sub SendeVerschlüsselt()
Dim json As String, verschlüsselt As String, http As Object
json = "{""id"":123,""status"":""ok""}"
verschlüsselt = VerschlüsselnAES(json, "geheimespasswort123!")
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", "https://deinserver.de/wp-json/secureapi/v1/empfang", False
http.setRequestHeader "Content-Type", "application/json"
http.Send "{""data"":""" & verschlüsselt & """}"
End Sub
Schritt 3: Entschlüsselung in WordPress (PHP)
Du brauchst openssl_decrypt() mit AES-256-CBC.
Nutze Base64-Encoding zum Transport.
function decrypt_payload($encrypted, $key) {
$data = base64_decode($encrypted);
$iv = substr($data, 0, 16);
$ciphertext = substr($data, 16);
return openssl_decrypt($ciphertext, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
}
Empfangene Payload verarbeiten:
add_action('rest_api_init', function () {
register_rest_route('secureapi/v1', '/empfang', [
'methods' => 'POST',
'callback' => 'verarbeite_payload',
'permission_callback' => '__return_true'
]);
});
function verarbeite_payload($req) {
$input = $req->get_json_params();
$payload = decrypt_payload($input['data'], 'geheimespasswort123!');
$daten = json_decode($payload, true);
// Weiterverarbeitung
return ['status' => 'ok', 'empfangen' => $daten];
}
Tipp: Nutze immer einen IV (Initialisierungsvektor) – am besten random mitgesendet.
Im Beispiel: IV steht vorne in der Base64-Zeichenkette.
Rückweg: WordPress → Access
Gleiches Prinzip – nur umgekehrt.
Die Antwort wird verschlüsselt zurückgegeben.
Access entschlüsselt sie wie im ersten Schritt.
Sicherheit beachten
- Schlüssel nie im Quelltext speichern
- IV pro Nachricht zufällig erzeugen
- Kein ECB-Modus
- Keine Klartext-Logs
- Kein JSON mit sensiblen Feldern unverschlüsselt speichern
Alternativen
- Asymmetrische Verschlüsselung mit RSA (z. B. über OpenSSL CLI oder Node.js API-Gateway)
- Hash-Verifikation (HMAC) für Integrität
- Microsoft Graph/Power Automate als Proxy (falls MS365)
Aber: Für viele KMU reicht AES im Shared-Secret-Verfahren.
Einfach, nachvollziehbar, wartbar.
Mein Fazit
REST und JSON sind schnell gebaut.
Aber erst mit Payload-Verschlüsselung wird daraus ein echtes System für sensible Daten.
Mit Access und WordPress geht das – man muss nur wissen, wie.
Und das Schaf? Das verschlüsselt immer – und meckert, wenn Du’s nicht tust.