Le mar. 11 sept. 2018 à 11:58, Pierre Beyssac <p...@fasterix.frmug.org> a écrit :
> On Mon, Sep 10, 2018 at 04:24:17PM +0200, Julien Lepiller wrote: > > Probablement un coup de la sécurité de firefox, j'ai le même souci avec > > HOT. En gros, il aime pas qu'on fasse une requête en HTTP depuis une > > page en HTTPS, donc il bloque. D'ailleurs, j'ai ce message (pas le même > > que HOT) en plus : > > > Blocage d’une requête multiorigines (Cross-Origin Request) : la > > politique « Same Origin » ne permet pas de consulter la ressource > > distante située sur > > > http://127.0.0.1:8111/load_and_zoom?zoom_mode=download&left=1.8996612&bottom=47.9166018&right=1.90061&top=47.9172378&select=way81016796,way297346084. > > > Raison : échec de la requête CORS. > > Ça peut être bloqué pour raisons de "Content Security Policy" en > effet mais normalement (selon leur propre doc) dans les Firefox > récents 127.0.0.1 est une exception qui ne devrait pas bloquer (je > n'ai pas essayé ::1). > C'est normal que ça bloque : ce n'est pas parce que le lien est activé dans un navigateur local que la source de ce lien vient du domaine local : la page vient d'un site tiers et le navigateur tient compte de l'origine de la page et de ses scripts, qui est le site web consulté affichant les liens. Sinon c'est trop facile pour une site web malveillant d'insérer des liens "127.0.0.1" pour passer outre les autorisations et obtenir directement des privilèges locaux (le javascript ne nécessaite pas forcément un clic de l'utilisateur pour se déclencher, le blocage est pour tous les scripts et liens). Bref si on veut éviter le blocage c'est à l'utilisateur d'ajouter une exception pour un site spécifique et l'autoriser à référencer des ressources locales (ou directement utiliser des fichiers locaux via 127.0.0.1 et rapporter le tout immédiatement au serveur web qui volerait les données). Le navigateur bloque donc tout à fait normalement ces scripts et si Firefox laisser passer, c'est une passoire, un gros trou de sécurité ! Bref le visiteur du site DOIT ajouter spécifiquement une autorisation pour permettre à un domaine web de suivre un lien local. En attendant ces liens sont désactivés et bloqués. Normalement le navigateur doit afficher une alerte de ce blocage (au minimum une icone dans la barre en haut), et pas seulement mettre une trace dans la console (qui n'est que très rarement affichée par la plupart des utilisateurs des navigateurs): cliquer cette icone doit indiquer la raison du blocage, et offrir un bouton éventuel pour permettre d'ajouter une exception pour le site web auquel l'utilisateur accorde sa confiance. Attention toutefois à ne PAS accorder une exemption totale de tous les sites web (IP, domaines, ou URL quelconques) pour leur donner accès au domaine local. La protection CORS est maintenant une nécessité absolue : chaque page, chaque script, chaque image est associée à un domaine qui définit son propre "royaume" de sécurité. Un site web peut déclarer qu'il ajoute des sites tiers à son royaume, mais n'a pas le droit de déclarer 127.0.1 ou d'autres ressources locales comme étant dans son domaine : une telle déclaration serait malveillante et le site web sera traité lui-même comme malveillant dans tout bon navigateur et ne pourra utiliser que ses propres ressources issues de son propre domaine ! Il y a d'autres restrictions aussi concernant non seulement les domaines mais aussi les protocoles : un site HTTPS ne doit plus accorder par défaut de droit aux ressources HTTP, même issues de son propre domaine, et donc le navigateur doit les bloquer: il appartient au site web de mettre toutes les ressources qu'il demande d'utiliser aussi en HTTPS ou dans un protocole sécurisé utilisant les mêmes certificats avec les autorisations compatibles et sinon s'assurer que les ressources de sites tiers (souvent des traqueurs, des pubs, des outils de géolocalisation) sont aussi en HTTPS si le site principal est en HTTPS (on voit l'anomalie récente sur les wikis de Wikimedia et OSM où un script de géolocalisation utilisait un site HTTPS qui maintenant va fermer et redirige vers une page en HTTP: ce script, bien, bien qu'hébergé par le wiki et chargé en HTTPS, et référençant une ressource HTTPS, ne peut pas honorer la redirection vers HTTP et se fait donc bloquer très légitimement par le navigateur, et c'est une très bonne chose à mon avis que les navigateurs renforcent l'isolation des sites en les séparant chacun dans leur propre bac à sable qu'ils ne peuvent "ouvrir" qu'en étant très strict sur la déclaration explicite des autorisations qu'ils accordent **eux-mêmes** à des tiers, sous leur propre responsabilité y compris légale).
_______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/talk-fr