DISIC / observatoire

🕵️‍♀️ Observatoire de la qualité des démarches en ligne
https://observatoire.numerique.gouv.fr/
GNU Lesser General Public License v3.0
10 stars 4 forks source link

Problème d'intégration du formulaire "Je donne mon avis" dans une iframe #1165

Closed wiinxt closed 2 years ago

wiinxt commented 2 years ago

Bonjour, nous voudrions intégrer le formulaire "Je donne mon avis" sous forme d'iframe plutôt qu'un simple lien qui ouvre un nouvel onglet. Malheureusement, sous chrome il y a une erreur après la validation de la question "Comment s'est passée cette démarche pour vous ?". En cherchant un peu, il se trouve que le cookie JSESSIONID n'a pas de règle SameSite et que donc chrome met par défaut SameSite=Lax, ce qui produit une erreur de cross-origin lors du POST et empêche d'envoyer le cookie à la page suivante.

La doc mdn explique plutôt bien cette règle

Pour reproduire le problème il faut être sur chrome, aller sur ce lien, cliquer sur "Modifier mes réponses" -> "Je donne mon avis", choisir un emoji et valider, vous devriez arriver sur cette page (au lieu de la deuxième partie du formulaire) :

image

Serait-il possible de changer cette règle par SameSite=None et ainsi autoriser les iframe ?

Merci d'avance pour votre retour

lucaa commented 2 years ago

@AnthonyBrunelli je peux investiguer ce ticket si vous validez que l'utilisation du formulaire d'avis dans une iframe correspond aux utilisations prévues de ce formulaire.

AnthonyBrunelli commented 2 years ago

Bonjour @wiinxt @lucaa ,

Nous avons discuté de cet aspect en interne. La possibilité d'intégrer le formulaire JDMA en iframe nous pose deux problèmes:

  1. Le risque de mauvaise intégration si la possibilité est laissée ouverte à tous (par exemple le comportement sur mobile) ;
  2. La confusion auprès des usagers qui risquent de ne plus faire la différence entre évaluation de la qualité des démarches et retours directs aux administrations sur leur cas personnel.

Pour ces raisons, il nous semble plus sage de ne pas utiliser le formulaire en iframe. J'espère @wiinxt que ça ne pose pas problème.

A.

wiinxt commented 2 years ago

Merci pour votre retour, dans ce cas il faudra peut être changer la règle du cookie avec SameSite=Strict car actuellement les iframe fonctionne si le navigateur ne gère pas le SameSite=Lax. Vous pouvez aussi complètement interdire les iframe avec une en-tête X-Frame-Options: SAMEORIGIN ou DENY.

AnthonyBrunelli commented 2 years ago

Merci @wiinxt ! @lucaa faudra qu'on voit ces points :)