Résoudre les problèmes

Diagnostiquer les erreurs cryptographiques de Sodium dans WordPress

Vérifié le 3 min de lecture wordpress errores seguridad

WordPress et certains plugins utilisent des fonctions cryptographiques pour vérifier des signatures et protéger des données. PHP peut les fournir via l'extension Sodium native, et WordPress inclut en outre une bibliothèque de compatibilité pour les environnements qui ne l'ont pas.

Un journal peut afficher une erreur comme celle-ci :

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

Ce TypeError confirme que le deuxième argument reçu était un entier alors que la fonction exigeait une chaîne. Le fait que la trace passe par wp-includes/sodium_compat/ ne prouve pas que Sodium manque, ni qu'activer l'extension convertira correctement cette donnée.

1. Conservez la trace complète

Notez l'heure et cherchez dans la trace le premier fichier situé en dehors de wp-includes/sodium_compat/. Il permet généralement d'identifier le plugin, le thème ou l'intégration qui a préparé les arguments. Ne modifiez pas les fichiers de wp-includes : ils sont remplacés lors des mises à jour et ne corrigent pas l'appelant.

2. Vérifiez l'environnement PHP du site

Vérifiez dans les informations de PHP si l'extension sodium est chargée. Faites la vérification depuis le même PHP que celui qui exécute le site : PHP CLI peut utiliser une autre version ou une autre configuration.

  • Si le plugin exige expressément l'extension native et qu'elle n'est pas chargée, activez-la depuis Select PHP Version ou demandez au fournisseur de le faire.
  • Si Sodium est déjà active, ou si l'erreur indique un type invalide, mettez à jour le composant identifié et voyez avec son développeur pourquoi il envoie un entier.
  • Si l'échec est apparu après un changement de PHP, vérifiez que le site conserve les mêmes extensions dans la nouvelle version.

3. Vérifiez la correction

Répétez exactement l'opération qui échouait et consultez le journal de la même heure. Confirmez que le TypeError n'apparaît plus et que la signature, le webhook ou l'intégration concernés vont jusqu'au bout. La présence de l'extension ne vérifie pas à elle seule que les données envoyées sont valides.

Ne convertissez pas l'argument en texte dans sodium_compat pour éviter le TypeError : les clés, signatures et messages ont des formats et des longueurs précis. Une conversion qui fait disparaître l'erreur peut laisser une vérification incorrecte.

Lorsque vous transmettez la trace au développeur, conservez les noms de fonctions et les types, mais omettez les clés, signatures privées, jetons et contenus sensibles. Utilisez des données de test pour reproduire l'opération cryptographique ; une page sans erreur ne suffit pas si la validation a été sautée.

Cela peut aussi vous aider

Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.