je rencontre depuis aujourd’hui un problème sur Dolibarr lorsque je souhaite modifier un valeur depuis l’interface. Par exemple je modifie le prix d’un de mes services et lorsque je valide cette modification j’obtiens l’erreur suivante :
Access refused by CSRF protection in main.inc.php. Referer of form () is outside the server that serve this page (with method = POST). If you access your server behind a proxy using url rewriting, you might check that all HTTP headers are propagated (or add the line $dolibarr_nocsrfcheck=1 into your conf.php file to remove this security check).
Avez-vous déjà rencontré cela ? Je n’utilise pas de proxy pourtant. J’ai bien la ligne $dolibarr_nocsrfcheck=1 dans config.php et j’ai activé aussi la ligne suivante dans Divers de Dolibarr : MAIN_SECURITY_CSRF_WITH_TOKEN=1
Je ne comprends pas comment cela est venu surtout qu’avant je n’avais aucun problème.
Bonjour,
$dolibarr_nocsrfcheck dans config.php et MAIN_SECURITY_CSRF_WITH_TOKEN on la même utilité. je n’ai pas vérifié si il y en avait un qui était « plus fort » que l’autre (je penche pour MAIN_SECURITY_CSRF_WITH_TOKEN). Dans le doute pour désactivé l’option an laissant $dolibarr_nocsrfcheck=1
et supprimer MAIN_SECURITY_CSRF_WITH_TOKEN dans configuration divers.
Attention cette manipulation créer un faille de sécurité (très facilement exploitable, si on cherche à vous nuire sur un Dolibarr hébergé accessible depuis internet ou sur un réseaux local)
En gros, en simplifiant, dans Dolibarr qaund vous cliquer sur « modifier », ou « creer », le crayon pour changer un champ unitaire, ou une recherche sur une liste filtrée.
Dolibarr vous présente un formulaire (les filtres des listes sont aussi un formulaire dans notre exemple). Dans ce formulaire, il y un truc caché qui dit je suis le formulaire de creation/modification/filtre « 1234546 ». Dolibarr sait que le seul ce formulaire « 1234546 » peut valider une modification/filtrage.
Que se passe t’il si vous avez plusieurs onglet Dolibarr en ouvert en même temps (cela arrive…) ?
Temps 1 :Onglet 1 => Clique sur « modifier/creer/filtre » => page avec le formulaire « 123465 »
Temps 2 :Onglet 2 => Clique sur « modifier/creer/filtre » sur un autre truc => page avec le formulaire « 789654321 »
Temps 3 :Onglet 1 => Clique sur « Sauver/filtre » => Erreur CSRF, Dolibarr ne comprend pas, il attend une information du dernier formulaire demandé (« 789654321 ») et il reçois une demande du formulaire « 123465 »
Ce paramétre est à 1 par défaut sur les nouvelles installations standard de Dolibarr (depuis la version 12), ce qui pose des problèmes d’utilisation sur plusieurs onglets. Cependant, cela qui assure que lorsque Dolibarr reçois une demande, elle provient bien de celui qui l’a demandé à l’instant et pas d’un « hacker », ou d’un logiciel malicieux (en tous cas c’est plus compliqué à « hacker »).
Je me suis mal exprimé : MAIN_SECURITY_CSRF_WITH_TOKEN et $dolibarr_nocsrfcheck on le même role mais n’ont pas le même sens.
$dolibarr_nocsrfcheck => si 1 pas de sécurité
MAIN_SECURITY_CSRF_WITH_TOKEN => si 1 sécurité
Pour désactivé la sécurité : $dolibarr_nocsrfcheck⁼1 et pas de divers MAIN_SECURITY_CSRF_WITH_TOKEN (ou alors à 0) comme ça il n’y pas de confusion possible.
Pour la sécurité : $dolibarr_nocsrfcheck⁼0 et divers MAIN_SECURITY_CSRF_WITH_TOKEN=1, ou pas de divers il n’y pas de confusion possible.
Il forcement eu un changement sur votre hébergement, gestion du nom de domaine, certificat SSL, etc… Ce type d’anomalies n’arrivent pas toutes seules. Surtout si vous demandez explicitement à ne pas l’avoir