Ce sujet est résolu. Voici une description du problème et de la solution.
Problem:
You want to scan your theme to find strings to translate, but your server blocks requests when scanning files named FileStore.php located in the /vendor/ folder of your theme. This blockage is due to ModSecurity.
Solution:
We recommend two alternatives to avoid this issue:
1. Generate a .po file offline using code or Poedit on a test site or sandbox environment, which you can then import via WPML String Translation.
2. Use the "auto register strings" feature at the bottom of the String Translation page. This feature will only register the necessary strings, eliminating the need to scan them.
If this solution does not apply to your case, or if it seems outdated, please open a new support ticket. We also highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. For further assistance, you can visit our support forum at WPML support forum.
Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.
Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.
Marqué : Exception
Ce sujet contient 9 réponses, a 2 voix.
Dernière mise à jour par Ilyes Il y a 6 mois et 3 semaines.
Assisté par: Ilyes.
Auteur | Articles |
---|---|
juillet 2, 2024 à 4:35 pm #15877095 | |
jessicaD-2 |
Contexte de la question: Symptômes: Questions: |
juillet 2, 2024 à 10:45 pm #15878353 | |
Ilyes Supporter
Les langues: Français (Français ) Fuseau horaire: Pacific/Easter (GMT-05:00) |
Bonjour, Merci d'avoir contacté l'équipe d'assistance WPML, Je trouve qu'il est difficile de trouver une solution pour ce type de blocage, d'autant plus que nous avons peu d'informations sur la règle de Modsecurity mise en place. Donc avant toute chose, avez-vous une idée de la règle de Modsecurity qui est appliquée dans ce blocage ? Et s'il y a des logs de leur part. Il est également important de mentionner qu'il existe d'autres moyens de charger et d'analyser les chaînes de caractères, vous pouvez consulter d'autres méthodes ici : Cordialement, |
juillet 3, 2024 à 8:15 am #15882121 | |
jessicaD-2 |
Le log d'erreur de modSec : [Tue Jul 02 09:48:15.444561 2024] [security2:error] [pid 1224720:tid 23022299490048] [remote 37.66.57.68:46007] [client 37.66.57.68] ModSecurity: Access denied with code 403 (phase 2). Matched phrase "filestore" at ARGS:files[]. [file "https://cdn.wpml.org/etc/apache2/conf.d/modsec_vendor_configs/imunify360-full-apache/001_i360_basic.conf"] [line "25"] [id "77316844"] [msg "IM360 WAF: Block by known DB injection entry||Injection:/home/urgen762/public_html/wp-content/themes/usq/vendor/vlucas/phpdotenv/src/Store/FileStore.php||User:urgen762||SC:/home/urgen762/public_html/wp-admin/admin-ajax.php||WPU:Thomas||T:APACHE||"] [severity "CRITICAL"] [tag "service_im360"] [hostname "www.urgences-sante.qc.ca"] [uri "/wp-admin/admin-ajax.php"] [unique_id "ZoQFH8a-qc6W6lWqfmV0zgABGBg"], referer: lien caché Le problème est que la requête Ajax porte sur un fichier s'appelant FileStore.php. J'ai bien essayé de créer des règles modsec personnalisées via le htaccess du genre <IfModule mod_security.c> Mais même sans la condition <If "%{REQUEST_URI} =~ m#/wp-admin/#">, je ne semble pas avoir la main pour contrôler cela. |
juillet 3, 2024 à 5:05 pm #15886159 | |
Ilyes Supporter
Les langues: Français (Français ) Fuseau horaire: Pacific/Easter (GMT-05:00) |
Bonjour, Merci pour les détails, Malheureusement, notre aide est très limitée car cela est entièrement dû à une nouvelle règle de Modsecurity, j'ai pu voir que d'autres développeurs sont suggérés d'ajouter des exceptions pour éviter ce blocage : https://stackoverflow.com/questions/78672051/getting-modsecurity-access-denied-with-code-403-because-the-content-of-a-post-c Il est plus approprié pour votre hébergeur de fournir une solution alternative pour mettre ce fichier sur liste blanche, Cordialement, |
juillet 8, 2024 à 7:19 am #15910475 | |
jessicaD-2 |
Je comprends tout à fait qu'ajouter une exception résoudrait mon problème. Cependant, comme expliqué dans mon premier message, mon offre d'hébergement ne me permet pas cela. Donc je voudrais savoir s'il existait un moyen d'exclure des fichiers/dossiers du scan de WPML string translation ? |
juillet 8, 2024 à 3:42 pm #15914460 | |
Ilyes Supporter
Les langues: Français (Français ) Fuseau horaire: Pacific/Easter (GMT-05:00) |
Bonjour, Merci pour le suivi, La seule solution à laquelle j'ai pensé est de supprimer temporairement ce fichier/dossier > d'effectuer le scan > puis de rétablir le dossier concerné Bien sûr, je ne sais pas si c'est une solution viable car je ne sais pas comment cela pourrait affecter le site, mais si vous pensez que cela vaut la peine d'être testé, vous pouvez le faire sur un environnement staging, Entre-temps, j'ai transmis votre demande à notre deuxième niveau afin de vérifier si nous disposons d'un autre moyen de le faire, Je vous tiendrai au courant, |
juillet 8, 2024 à 6:11 pm #15915053 | |
Ilyes Supporter
Les langues: Français (Français ) Fuseau horaire: Pacific/Easter (GMT-05:00) |
Rebonjour, J'ai reçu une réponse de notre équipe, Le thème utilise donc cette bibliothèque : lien caché La bibliothèque comprend un fichier FileStore.php, qui est signalé comme problématique par les règles de sécurité. S'ils ne peuvent pas modifier les règles de sécurité, l'option la plus simple serait de supprimer temporairement le fichier qui pose problème (wp-content/themes/usq/vendor/vlucas/phpdotenv/src/Store/FileStore.php) pendant l'analyse du plugin. Le fichier ne contient pas de chaînes traduisibles, il n'y aurait aucune conséquence à le supprimer temporairement, puis à le restaurer après l'analyse. N'hésitez pas à nous faire savoir si cela est possible, |
juillet 9, 2024 à 7:12 am #15918334 | |
Ilyes Supporter
Les langues: Français (Français ) Fuseau horaire: Pacific/Easter (GMT-05:00) |
J'ai obtenu plus d'informations de la part de notre équipe, Au lieu de scanner tout le plugin, vous avez deux options : - Générer hors ligne (via le code ou poedit (https://stackoverflow.com/questions/2514449/how-to-generate-a-po-file) sur un site d'essai ou dans un site sandbox) un fichier .po que vous pouvez importer par WPML String Translation. OU Utiliser la fonction "auto register strings" en bas de String Translation - elle n'enregistrera que les chaînes nécessaires et vous évitera d'avoir à les scanner. |
juillet 15, 2024 à 12:55 pm #15954529 | |
jessicaD-2 |
Merci pour votre aide. J'ai bien entendu déjà renommé les fichiers pour le scan, l'erreur de ModSec étant assez explicite pour être contournée via cette solution. Le problème est que j'ai plusieurs fichiers FileStore.php, et cela n'est pas viable d'intervenir manuellement (et compromet potentiellement les fonctions du site le temps du scan). L'idéal aurait été de pouvoir exclure certains dossiers, d'une part pour accélérer les scans, et d'autre part pour éviter ce genre de problème. Merci pour votre aide |
juillet 15, 2024 à 9:46 pm #15956883 | |
Ilyes Supporter
Les langues: Français (Français ) Fuseau horaire: Pacific/Easter (GMT-05:00) |
Bonjour, Avez-vous essayé les deux autres solutions alternatives que j'ai suggérées dans ma réponse précédente ? Cordialement, |
juillet 16, 2024 à 6:57 am #15958409 | |
jessicaD-2 |
La recherche et l'enregistrement automatique de strings fonctionne bien en effet, merci. |