Résoudre les problèmes
Diagnostiquer les erreurs cryptographiques de Sodium dans WordPress
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
- Comment résoudre l'erreur cURL 60 de certificat SSL dans WordPress Comment diagnostiquer et résoudre l'erreur cURL 60 de WordPress sans désactiver la vérification des...
- Déboguer les erreurs dans WordPress Repérez les pages blanches et les erreurs internes de WordPress en envoyant WP_DEBUG vers un journal...
- Elementor 3.6.x, problèmes historiques de compatibilité Guide historique pour diagnostiquer les erreurs apparues lors de la mise à jour vers Elementor 3.6 s...
- Elementor affiche une erreur 500 à l'enregistrement Identifiez la requête et l'erreur PHP d'Elementor avant de modifier les limites de mémoire, les plug...
Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.