web-dev-qa-db-fra.com

Désactiver la même règle d'origine dans Chrome

Existe-t-il un moyen de désactiver la règle Même origine sur le navigateur Chrome de Google?

Ceci est strictement pour le développement, pas pour une utilisation en production.

1242
Landon Kuhn

Fermez chrome (ou chrome) et redémarrez avec l’argument --disable-web-security. Je viens de tester cela et de vérifier que je peux accéder au contenu d'un iframe avec src = "http://google.com" intégré dans une page servie à partir de "localhost" (testé sous chrome 5/ubuntu). Pour moi, la commande exacte était:

Remarque: Éliminez toutes les instances de chrome avant d'exécuter la commande

chromium-browser --disable-web-security --user-data-dir="[some directory here]"

Le navigateur vous avertira que "vous utilisez une ligne de commande non prise en charge" à son ouverture, vous pouvez l'ignorer.

De la source de chrome:

// Don't enforce the same-Origin policy. (Used by people testing their sites.)
const wchar_t kDisableWebSecurity[] = L"disable-web-security";

Avant Chrome 48, vous pouviez simplement utiliser:

chromium-browser --disable-web-security
864
Dagg Nabbit

Oui. Pour OSX, ouvrez Terminal et exécutez:

$ open -a Google\ Chrome --args --disable-web-security --user-data-dir

--user-data-dir requis sous Chrome 49+ sous OSX

Pour Linux, exécutez:

$ google-chrome --disable-web-security

De même, si vous essayez d'accéder à des fichiers locaux à des fins de développement, comme AJAX ou JSON, vous pouvez également utiliser cet indicateur.

-–allow-file-access-from-files

Pour Windows, entrez dans la commande Invite, puis dans le dossier où se trouve Chrome.exe et tapez

chrome.exe --disable-web-security

Cela devrait désactiver la même stratégie d'origine et vous permettre d'accéder aux fichiers locaux.

Mise à jour: Pour Chrome 22+, un message d'erreur indiquant que:

Vous utilisez un indicateur de ligne de commande non pris en charge: --disable-web-security. La stabilité et la sécurité vont en souffrir.

Cependant, vous pouvez simplement ignorer ce message pendant le développement.

981
ectype

Pour les utilisateurs Windows:

Le problème avec la solution acceptée ici, à mon avis, est que si vous avez déjà Chrome ouvert et essayez de l'exécuter, cela ne fonctionnera pas. 

Cependant, en recherchant cela, je suis tombé sur un article sur Super User, Est-il possible d'exécuter Chrome avec et sans sécurité Web en même temps?.

Fondamentalement, en exécutant la commande suivante (ou en créant un raccourci avec elle et en ouvrant Chrome via cela)

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

vous pouvez ouvrir une nouvelle instance "non sécurisée" de Chrome en même temps que vous maintenez vos autres instances de navigateur "sécurisées" ouvertes et fonctionnant normalement. Important: supprimez/effacez le dossier C:/Chrome dev session à chaque fois que vous ouvrez une fenêtre car la deuxième fois, --disable-web-security ne fonctionnera pas. Par conséquent, vous ne pouvez pas enregistrer vos modifications, puis les rouvrir en tant que seconde instance non sécurisée de Chrome avec --disable-web-security.

431
Ola Karlsson

Pour Windows :

  1. Ouvrez le menu de démarrage
  2. Type windows+R ou ouvrez "Run"
  3. Exécutez la commande suivante:

    chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
    

Pour Mac :

  1. Aller au terminal
  2. Exécutez la commande suivante:

    open /Applications/Google\ Chrome.app --args --user-data-dir="/var/tmp/Chrome dev session" --disable-web-security
    

Un nouveau navigateur Chrome désactivé pour la sécurité Web doit s’ouvrir avec le message suivant:

enter image description here

113
GSB

Je ne voulais pas redémarrer Chrome et désactiver ma sécurité Web (car je naviguais tout en développant) et suis tombé par hasard sur cette extension de Chrome.

Chrome Web Store Autoriser-Contrôler-Autoriser-Origine: * 
(https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=fr)

Fondamentalement, il s’agit d’un petit commutateur permettant d’activer et de désactiver la vérification Allow-Access-Origin-Control. Fonctionne parfaitement pour moi pour ce que je fais.

EDIT: J'ai essayé d'utiliser l'autre jour pour un autre projet et cela a cessé de fonctionner. La désinstallation et la réinstallation de l'extension l'ont corrigée (pour réinitialiser les valeurs par défaut).

EDIT 2: Je ne peux plus obtenir que cela fonctionne de manière cohérente

71
Coburn

Pour windows utilisateurs avec Chrome, versions 60.0.3112.78 (le jour où la solution a été testée et opérationnelle) et au moins jusqu'à ce jour 19.01.2019 (ver. 71.0.3578.98) . Vous n'avez pas besoin de fermer une instance de chrome.

  1. Créez un raccourci sur votre bureau
  2. Cliquez avec le bouton droit sur le raccourci, puis cliquez sur Propriétés.
  3. Modifier la propriété cible
  4. Définissez-le sur "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir = "C:/ChromeDevSession"
  5. Démarrez chrome et ignore le message disant --disable-web-security n'est pas pris en charge!

VEUILLEZ NE PAS UTILISER CETTE INSTANCE DE NAVIGATEUR PARTICULIER POUR NAVIGUER PARCE QUE VOUS POUVEZ ÊTRE CACHÉ!

49
Ognyan Dimitrov

Il semble qu'aucune des solutions ci-dessus ne fonctionne réellement. --Disable-web-security n'est plus pris en charge dans les versions récentes de Chrome. 

Allow-Control-Allow-Origin: * - L'extension chrome a partiellement résolu le problème. Cela ne fonctionne que si votre requête utilise la méthode GET et qu'il n'y a pas d'en-tête HTTP personnalisé. Sinon, chrome enverra une requête HTTP OPTIONS en tant que requête préalable au vol. Si le serveur ne prend pas en charge CORS, il répondra avec le code d'état HTTP 404. Le plugin ne peut pas modifier le code d'état HTTP de la réponse. Donc, chrome rejettera cette demande. Il n'y a aucun moyen pour le plug-in chrome de modifier le code d'état HTTP de la réponse en fonction de l'API d'extension chrome actuelle. Et vous ne pouvez pas non plus faire de redirection pour une demande initiée par XHR.

Vous ne savez pas pourquoi Chrome rend la vie des développeurs si difficile. Il bloque tous les moyens possibles pour désactiver le contrôle de sécurité XSS, même pour une utilisation de développement totalement inutile.

Après des jours de lutte et de recherche, une solution me convient parfaitement: utiliser corsproxy. Vous avez deux options ici: 1. utilisez corsproxy.com 2. installez corsproxy dans la boîte locale: npm install -g corsproxy

[Mis à jour le 23 juin 2018] Récemment, je développe une application SPA qui doit à nouveau utiliser le corsproxy. Mais rien du corsproxy sur le github ne peut répondre à mes besoins. 

  • besoin pour fonctionner à l'intérieur du pare-feu pour des raisons de sécurité. Je ne peux donc pas utiliser https://cors-anywhere.herokuapp.com/
  • Il doit prendre en charge https car Chrome bloquera la demande ajax no-https dans une page https. 
  • J'ai besoin de courir sur nodejs. Je ne veux pas maintenir une autre pile de langues.

Je décide donc de développer ma propre version de corsproxy avec nodejs. C'est en fait très simple. Je l'ai publié en tant que Gist sur le github. Voici le code source Gist: https://Gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10

  • C'est du code nodejs simple, sans aucune dépendance supplémentaire
  • Vous pouvez exécuter les modes http et https (en passant le port https Numéro en ligne de commande). Pour exécuter https, vous devez générer un certificat et une clé .__ et les placer dans le répertoire webroot. 
  • Il sert également de serveur de fichiers statique
  • Il prend également en charge la demande OPTION pré-vol.
42
Jianwu Chen

Pour Windows ... créez un raccourci Chrome sur votre bureau.
Clic droit> propriétés> Raccourci
Modifier le chemin "cible": 

"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security

(Changez le 'C: ....\chrome.exe' où que soit situé votre chrome).

et voilà :) 

41
molokoloco

Je trouve que la meilleure façon de faire est de dupliquer un raccourci Chrome ou Chrome Canary sur le bureau Windows. Renommez ce raccourci en "NO CORS" puis modifiez les propriétés de ce raccourci. 

dans la cible, ajoutez --disable-web-security --user-data-dir="D:/Chrome" à la fin du chemin cible. 

votre cible devrait ressembler à ceci:

Mise à jour: Nouveaux indicateurs ajoutés.

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="D:/Chrome"

 enter image description here

34
etoxin

Essayez cette commande sur un terminal Mac

open -n -a "Google Chrome" --args --user-data-dir=/tmp/temp_chrome_user_data_dir http://localhost:8100/ --disable-web-security 

Il ouvre une autre instance de chrome avec la sécurité désactivée et il n'y a plus de problème CORS. De plus, vous n'avez plus besoin de fermer d'autres instances de chrome. Remplacez l’URL de l’hôte local par votre adresse URL.

29
Vivek Sinha

Vous pouvez utiliser ce plugin chrome appelé "Allow-Control-Allow-Origin: *" ... Il en fait un simple mort et fonctionne très bien . vérifiez-le ici: *

 Chrome extenstion

19
Mohamed Saleh

Pour Selenium Webdriver, vous pouvez faire en sorte que Selenium lance Chrome avec les arguments appropriés (ou "commutateurs") dans ce cas.

 @driver = Selenium::WebDriver.for(:Chrome, { 
       :detach => false,
       :switches => ["--disable-web-security"]
    })
18
mikelupo

Si vous utilisez Google Chrome sous Linux, la commande suivante fonctionne.

google-chrome  --disable-web-security
13
chhantyal

Ce plugin Chrome fonctionne pour moi: Allow-Control-Allow-Origin: * - Chrome Web Store

12
Bruce
chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/
9
MechaCode

Sous Windows 10, ce qui suit fonctionnera.

<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-Origin-auth-Prompt
8
ItsAllABadJoke

POUR UTILISATEUR MAC UNIQUEMENT  

open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security
8

Vous pouvez simplement utiliser cette extension chrome Allow-Control-Allow-Origin

il suffit de cliquer sur l'icône de l'extension pour activer ou désactiver le partage de ressources croisées à votre guise 

8
Peter Wilson

Suite à la réponse de Ola Karlsson, le meilleur moyen consiste à ouvrir le Chrome non sécurisé dans une session différente. Ainsi, vous n'avez pas à vous soucier de fermer tous les onglets actuellement ouverts et vous pouvez également continuer à surfer sur le Web en toute sécurité avec la session Chrome d'origine.

Ces fichiers de commandes devraient fonctionner pour vous sous Windows.

Mettez-le dans un fichier Chrome_CORS.bat pour une utilisation facile

start "" "c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="c:/_chrome_dev" --disable-web-security

Celui-ci est pour Chrome Canary. Canary_CORS.bat

start "" "c:\Users\%USERNAME%\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --user-data-dir="c:/_canary_dev" --disable-web-security
7
guya

Il existe une extension Chrome appelée CORS Toggle.

Cliquez ici pour y accéder et l’ajouter à Chrome .

Après l'ajout, basculez-le sur la position on pour autoriser les requêtes inter-domaines.

6
Mowzer

pour les utilisateurs de mac:

open -a "Google Chrome" --args --disable-web-security --user-data-dir

et avant Chrome 48, vous pouviez simplement utiliser:

open -a "Google Chrome" --args --disable-web-security
5
Braian Mellor

en utilisant les dernières versions de chrome actuelles (73.0.3683.86), la seule façon de le faire fonctionner dans mon test consistait à démarrer chrome à l'aide des drapeaux ci-dessous (modifiez le D:\temp à votre convenance ):

--disable-site-isolation-trial --disable-web-security --user-data-dir = "D:\temp"

dans Windows, cliquez sur le bouton de démarrage puis copiez-collez ce qui suit:

chrome.exe  --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"
4
user2576266

Ne fais pas ça!Vous ouvrez vos comptes aux attaques . Une fois cette opération effectuée, tout site tiers peut commencer à envoyer des demandes à d'autres sites Web, sites auxquels vous êtes connecté.

Au lieu de cela, exécutez un serveur local. C'est aussi simple que d'ouvrir un shell/terminal/ligne de commande et de taper

cd path/to/files
python -m SimpleHTTPServer

Puis en pointant votre navigateur sur

http://localhost:8000

Si vous trouvez que c'est trop lent réfléchissez à cette solution

3
gman

Pour les fenêtres:

(avec windows 8.1, chrome 44.0

Tout d'abord, fermez Google Chrome.

Ensuite, ouvrez Invite de commandes et accédez au dossier où se trouve "chrome.exe".

( for me: 'chrome.exe' is here "C:\Program Files (x86)\Google\Chrome\Application".

Alors je tape: cd C:\Program Files (x86)\Google\Chrome\Application)

maintenant tapez: chrome.exe --disable-web-security

une nouvelle fenêtre de chrome s'ouvrira.

3
Fuad Ahmad

Sur Linux Ubuntu, pour exécuter simultanément une session normale et une session non sécurisée, exécutez la commande suivante:

google-chrome  --user-data-dir=/tmp --disable-web-security
2

c’est une cible en perpétuel mouvement… Aujourd’hui, j’avais besoin d’ajouter un autre drapeau pour que cela fonctionne: --disable-site-isolation-trials

OS X: open /Applications/Google\ Chrome.app --args --user-data-dir="/var/tmp/Chrome_dev_2" --disable-web-security --disable-site-isolation-trials

2
denodster

Sur un PC Windows, utilisez une ancienne version de Chrome et la commande fonctionnera pour vous tous. J'ai rétrogradé mon Chrome à la version 26 et cela a fonctionné.

1
user1578524

J'utilise parfois cette méthode pour publier un site frontal d'hôte local sur une API dorsale d'hôte localhost (par exemple, réagir avec une ancienne API .NET). J'ai créé un raccourci distinct sur le bureau Windows 10, de sorte qu'il ne soit jamais utilisé pour la navigation normale, mais uniquement pour le débogage local. J'ai fait ce qui suit: -

  1. Clic droit sur le bureau, ajouter un nouveau raccourci
  2. Ajouter la cible en tant que "[PATH_TO_CHROME]\chrome.exe" --disable-web-security
  3. Cliquez sur OK.

Vous recevrez un avertissement au chargement de ce navigateur, que ce n’est pas sécurisé, prenez juste soin de ce que vous naviguez dessus. J'ai tendance à renommer ce nouveau raccourci sur le bureau, quelque chose en majuscule, et à l'éloigner de mes autres icônes afin d'éviter toute confusion pour Chrome normal.

J'espère que cela t'aides!

0
Mike Upjohn

Essayez d’aller sur cette page et de désactiver la stratégie de sécurité de domaine pour le domaine de votre site Web.

chrome://net-internals/#hsts
0
Rahul Malu

Le plug-in Allow-Control-Allow-Origin pour Chrome ne fonctionne pas. C'est pour MacOS

J'ai ajouté alias chrome='open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir --disable-web-security' à mon .profile comme alias.

Les autres commandes vont désactiver mes autres extensions et cela démarrera votre chrome normal avec cors désactivé

0
Mygel Bergstresser