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.
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
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.
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
.
Pour Windows :
Exécutez la commande suivante:
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
Pour Mac :
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:
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.
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
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.
VEUILLEZ NE PAS UTILISER CETTE INSTANCE DE NAVIGATEUR PARTICULIER POUR NAVIGUER PARCE QUE VOUS POUVEZ ÊTRE CACHÉ!
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.
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
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à :)
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"
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.
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: *
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"]
})
Si vous utilisez Google Chrome sous Linux, la commande suivante fonctionne.
google-chrome --disable-web-security
Ce plugin Chrome fonctionne pour moi: Allow-Control-Allow-Origin: * - Chrome Web Store
chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/
Sous Windows 10, ce qui suit fonctionnera.
<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-Origin-auth-Prompt
POUR UTILISATEUR MAC UNIQUEMENT
open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security
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
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
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.
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
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"
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
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.
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
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
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é.
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: -
"[PATH_TO_CHROME]\chrome.exe" --disable-web-security
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!
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
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é