128 votes

Désactiver la politique de même origine de Firefox

Je développe un outil de recherche local qui m'oblige à désactiver la politique de même origine de Firefox (en termes d'accès script, je ne me soucie pas vraiment des requêtes inter-domaines).

Plus précisément, je veux que les scripts du domaine hôte puissent accéder à des éléments arbitraires dans les iframes intégrés à la page, quel que soit leur domaine.

Je suis au courant des questions-réponses précédentes qui mentionnaient l'extension CORS FF, mais ce n'est pas ce dont j'ai besoin, puisqu'elle ne permet que CORS, mais pas l'accès script.

Si cela ne peut pas être fait facilement, j'apprécierais également toute information qui m'indiquerait une partie spécifique du code src de FF que je peux modifier pour désactiver le SOP, afin que je puisse recompiler FF.

4 votes

Ce serait une chose intéressante pour les développeurs. Puisque la même politique d'origine est conçue pour la sécurité des utilisateurs et non des développeurs, il devrait être possible d'autoriser les scripts de l'application donné site pour franchir les restrictions. Mais les développeurs sont aussi des personnes, et vous pourriez perdre vos informations personnelles.

1 votes

Je crois que ce n'est pas possible pour le moment, voici le rapport de bogue correspondant dans Firefox Bugzilla : bugzilla.mozilla.org/show_bug.cgi?id=1039678

0 votes

La seule bonne solution est d'injecter les en-têtes par un plugin basé sur les domaines : stackoverflow.com/a/44093160/956397 Tout le reste n'est qu'insécurité...

92voto

Il existe une extension Firefox qui ajoute les en-têtes CORS à toute réponse HTTP et qui fonctionne avec la dernière version de Firefox ( version 36.0.1 ) libéré 5 mars 2015 . Je l'ai testé et il fonctionne à la fois sur Windows 7 et Mavericks. Je vais vous guider à travers les étapes pour le faire fonctionner.

1) Obtenir l'extension

Vous pouvez soit télécharger le xpi à partir de aquí (construit par l'auteur) ou de aquí (miroir, peut ne pas être mis à jour).

Ou téléchargez le fichiers depuis GitHub. Maintenant, il est aussi sur Firefox Marketplace : Télécharger ici . Dans ce cas, l'addon est installé après que vous ayez cliqué sur installer et vous pouvez passer à l'étape 4.

Si vous avez téléchargé le xpi, vous pouvez passer à l'étape 3. Si vous avez téléchargé le zip depuis GitHub, passez à l'étape 2.

2) Construction de l'xpi

Vous devez extraire le zip, entrer dans le dossier "cors-everywhere-firefox-addon-master", sélectionner tous les éléments et les compresser. Ensuite, renommez le zip créé en *.xpi

Note : Si vous utilisez l'interface OS X, cela peut créer des fichiers cachés, il est donc préférable d'utiliser la ligne de commande.

3) Installation de l'xpi

Vous pouvez simplement faire glisser et déposer le xpi dans firefox, ou aller à : "about:addons", cliquez sur la roue dentée dans le coin supérieur droit et sélectionnez "install add on from file", puis sélectionnez votre fichier .xpi. Maintenant, redémarrez firefox.

4) Faire fonctionner le système

Maintenant, l'extension ne fonctionnera pas par défaut. Vous devez faire glisser l'icône de l'extension vers la barre d'extension, mais ne vous inquiétez pas. Il y a des images !

  • Cliquez sur le menu Firefox
  • Cliquez sur Personnaliser

p1

  • Faites glisser CorsE vers le bar
  • Maintenant, cliquez sur l'icône, quand elle est verte, les en-têtes CORS seront ajoutés à toute réponse HTTP.

p2

5) Tester si cela fonctionne

jQuery

$.get( "http://example.com/", function( data ) {
  console.log (data);
});

JavaScript

xmlhttp=new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
        console.log(xmlhttp.responseText);
    }
}

xmlhttp.open("GET","http://example.com/");
xmlhttp.send();

6) Considérations finales

Notez que https vers http n'est pas autorisé .

Il y a peut-être un moyen de le contourner, mais cela dépasse le cadre de la question.

58voto

Niklas Points 2009
about:config -> security.fileuri.strict_origin_policy -> false

21 votes

Merci @Niklas, cependant, je pense que cela ne désactive que les vérifications de la politique de même origine de fileuri - probablement utilisé pour les tests de développement web local. Cela m'arrête toujours lorsque j'essaie d'accéder aux nœuds DOM dans une iframe avec le domaine B à partir d'un JavaScript dans le domaine A.

143 votes

Cela ne fait rien

0 votes

Comme le dit vknyvz, c'est inutile.

12voto

Yuchen Zhou Points 126

J'ai réalisé que mon ancienne réponse a été déclassée parce que je n'ai pas spécifié comment désactiver spécifiquement la politique de même origine de FF. Ici, je vais donner une réponse plus détaillée :

Avertissement : Cela nécessite une recompilation de FF, et la nouvelle version compilée de Firefox ne sera pas en mesure de activer Encore le SOP.

Vérifiez le code source de Mozilla Firefox, trouvez nsScriptSecurityManager.cpp dans le répertoire src. Je vais utiliser celui qui est listé ici comme exemple : http://mxr.mozilla.org/aviarybranch/source/caps/src/nsScriptSecurityManager.cpp

Allez à l'implémentation de la fonction nsScriptSecurityManager::CheckSameOriginURI, qui est la ligne 568 à la date du 03/02/2016.

Faites en sorte que cette fonction renvoie toujours NS_OK.

Cela désactivera le SOP pour de bon.

La réponse de @Giacomo concernant l'addon pour navigateur devrait être utile pour la plupart des gens et j'ai accepté cette réponse, cependant, pour mes besoins de recherche personnels (TL;ne sera pas expliqué ici), ce n'est pas suffisant et je pense que d'autres chercheurs devront faire ce que j'ai fait ici pour tuer complètement le SOP.

10voto

Tan Mai Van Points 484

J'ai écrit un add-on pour surmonter ce problème dans Firefox (Chrome, Opera version aura bientôt). Il fonctionne avec la dernière version de Firefox, avec une belle interface utilisateur et le support de JS regex : https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors

enter image description here

3voto

Khado Mikhal Points 124

A partir de Septembre 2016 cet addon est le meilleur à désactiver CORS : https://github.com/fredericlb/Force-CORS/releases

Dans le panneau d'options, vous pouvez configurer l'en-tête à injecter et le site Web spécifique pour qu'il soit activé automatiquement.

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X