Bonjour la communauté,
je suis un nouveau utilisateur de maarchRM et j’ai rencontré un problème consernant la verification CSRF, ca me retourne toujours le status “403 Forbidden” sachant que les cookies CSRF dans l’entête de la requête et de la réponse sont identiques.
J’ai trouvé quelque part qu’il fallait inclure cette information avec les données du formulaire à envoyer (je n’ai pas testé encore).
Si vous pouvez me proposer une piste à suivre je serai très reconnaissant.
Merci
Je n’ai pas compris.
Vous cherchez à créer une vulnérabilité de type Cross-Site Request Forgery ?
Non, enfaite je suis en train d’installer votre solution MaarchRM pour des fins de développement et sachant que votre solution intègre la protection CSRF, quand j’essaye d’envoyer un formulaire, la vérification du CSRF refuse l’exécution de la requête en retournant une réponse dont le code statuts est “403”
Je n’ai toujours pas compris.
Oui il y a un contrôle CSRF (fort heureusement), donc que le serveur réponde avec un HTTP 403 est très exactement ce qu’il doit faire et ce qui doit être attendu. S’il répondait autre chose, ce serait une vulnérabilité.
Pour rappel une 403 c’est ça :
« Error 403: "The server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated. »
d’accord, si c’est ce que le serveur doit faire, pourquoi les changements ne sont pas prises en compte dans le système? à titre d’exemple, quand j’essaye de créer un nouveau utilisateur le serveur renvoit la réponse avec le status dit et l’opération n’est pas enregistrée dans la base de donnée.
Ben ?
Si le logiciel refuse votre requête parce que vous contournez ses contrôles de sécurités, il ne va tout de même pas accepter quand même ce que vous envoyez et faire comme si tout se passait correctement non ?
Désolé pour cette réponse tardive, mais, je contourne pas ses contrôles, j’ai rien encore touché dans le code, ça se passe depuis le premier essai du logiciel, le serveur n’accepte aucune requête même si il renvoit le code status “correcte” comme vous avez dit.
Bonjour @HJK,
Vous avez l’erreur en faisant appel à des routes en web service ou via l’interface ?
Videz votre cache et supprimez vos cookies.
Pour information, la protection CSRF a été refaite dans la prochaine version.
Bonjour @alexis,
J’ai l’erreur en utilisant l’interface. J’ai essayé de vider le cache et de supprimer les cookies plusieurs fois mais sans succès.
En fait, du coté de l’interface, quand j’exécute une requête, un rectangle rouge, vide (sans message de réponse) s’affiche et l’opération n’est prise en compte par le système.
Je crois que je deverai attendre la prochaine version avec la réintegration de la protection en espérant que le problème sera résolu. En attendant, j’ai réussi à dépasser la verification en modifiant le code.
??? J’avais compris de vos deux premiers messages que c’était via un formulaire hors du logiciel
Je me suis mal exprimé, je pense. Mais ce n’est pas grave, en tout cas si vous avez des propositions à me suggérer, je vous prie de les communiquer sinon, je devrai attendre la prochaine version de MaarchRM en espérant que ça résout mon problème.
Merci.
Pour désactiver la protection CSRF sans modifier le code, il faut supprimer la valeur ‘csrf’ dans la variable du vhost LAABS_DEPENDENCIES
C’est fait, merci à vous.
Non, enfaite je suis en train d’installer votre solution MaarchRM pour des fins de développement et sachant que votre solution intègre la protection CSRF, quand j’essaye d’envoyer un formulaire, la vérification du CSRF refuse l’exécution de la requête en retournant une réponse dont le code statuts est “403”
brochure templates for word
Bonjour @vibratosurfeit,
Vous réalisez des appels web service c’est bien cela ?
Utilisez-vous le virtual host pour les web service et pas celui pour l’interface graphique ?
Le virtual host pour web service est le 2eme dans le fichier laabs/data/maarchRM/conf/vhost.conf.default
il possède la variable d’environnement LAABS_PRESENTATION
de commentée
Nous avons corrigé une configuration pour le CSRF, je vous invite à prendre la dernière version (2.3.6) afin d’avoir la configuration suivante pour le CSRF :
csrfWhiteList = "['user/login', 'user/password']"
csrfConfig = '{
"cookieName" : "CSRF",
"tokenLength" : 32
}'