Fehlerbehebung

Kryptografische Sodium-Fehler in WordPress diagnostizieren

Geprüft am 3 Min. Lesezeit wordpress errores seguridad

WordPress und einige Plugins nutzen kryptografische Funktionen, um Signaturen zu prüfen und Daten zu schützen. PHP kann sie über die native Erweiterung Sodium bereitstellen, und WordPress enthält zusätzlich eine Kompatibilitätsbibliothek für Umgebungen, in denen sie fehlt.

Ein Protokoll kann einen Fehler wie diesen zeigen:

PHP Fatal error: Uncaught TypeError: Argument 2 must be a string, integer given. 
in /home/usuario/public_html/wp-includes/sodium_compat/src/Core/Util.php:242

Dieser TypeError bestätigt, dass das zweite Argument eine Ganzzahl war, obwohl die Funktion eine Zeichenkette verlangte. Dass der Stacktrace durch wp-includes/sodium_compat/ läuft, beweist weder, dass Sodium fehlt, noch dass das Aktivieren der Erweiterung diesen Wert korrekt umwandelt.

1. Den vollständigen Stacktrace aufbewahren

Notieren Sie die Uhrzeit und suchen Sie im Stacktrace die erste Datei außerhalb von wp-includes/sodium_compat/. Meist lässt sich daran das Plugin, Theme oder die Integration erkennen, die die Argumente vorbereitet hat. Ändern Sie keine Dateien in wp-includes: Sie werden beim Update ersetzt und korrigieren den Aufrufer nicht.

2. Die PHP-Umgebung der Website prüfen

Prüfen Sie in den PHP-Informationen, ob die Erweiterung sodium geladen ist. Prüfen Sie das mit demselben PHP, das die Website ausführt: PHP CLI kann eine andere Version oder Konfiguration nutzen.

  • Wenn das Plugin ausdrücklich die native Erweiterung verlangt und sie nicht geladen ist, aktivieren Sie sie unter Select PHP Version oder bitten Sie den Anbieter darum.
  • Wenn Sodium bereits aktiv ist oder der Fehler einen ungültigen Typ meldet, aktualisieren Sie die ermittelte Komponente und klären Sie mit ihrem Entwickler, warum sie eine Ganzzahl sendet.
  • Wenn der Fehler nach einem PHP-Wechsel auftrat, bestätigen Sie, dass die Website in der neuen Version dieselben Erweiterungen hat.

3. Die Korrektur prüfen

Wiederholen Sie genau die fehlerhafte Aktion und prüfen Sie das Protokoll zur selben Uhrzeit. Bestätigen Sie, dass der TypeError nicht mehr erscheint und dass die betroffene Signatur, der Webhook oder die Integration ihren Ablauf abschließt. Dass die Erweiterung vorhanden ist, belegt für sich allein nicht, dass die gesendeten Daten gültig sind.

Wandeln Sie das Argument nicht innerhalb von sodium_compat in Text um, um den TypeError zu vermeiden: Schlüssel, Signaturen und Nachrichten haben bestimmte Formate und Längen. Eine Umwandlung, die den Fehler beseitigt, kann eine fehlerhafte Prüfung hinterlassen.

Wenn Sie den Stacktrace an den Entwickler weitergeben, behalten Sie Funktionsnamen und Typen bei, lassen Sie aber Schlüssel, private Signaturen, Tokens und sensible Inhalte weg. Nutzen Sie Testdaten, um die kryptografische Operation nachzustellen; eine Seite ohne Fehler reicht nicht, wenn die Prüfung übersprungen wurde.

Das könnte Ihnen auch helfen

Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.