Comment lancer le HTML en utilisant Chrome en mode «--allow-file-access-from-files»?

124

J'ai la même situation avec ICI

Et pour résoudre ce problème, je dois lancer un fichier html en utilisant Chrome en mode "--allow-file-access-from-files". J'ai essayé plusieurs fois les étapes suivantes, mais cela ne fonctionne pas.

  1. démarrer cmd sous windows 7
  2. direct vers le dossier chrome.exe
  3. fais ça chrome --allow-file-access-from-files file:///C:/test%20-%203.html
AmyWuGo
la source
1
Vous pouvez également utiliser un plugin Chrome pour cela. Je trouve que c'est le moyen le plus pratique. Ceci n'est qu'un exemple: chrome.google.com/webstore/detail/allow-control-allow-origi/…
Robert Parcus
5
@RobertParcus Ce plugin ne semble pas fonctionner si vous utilisez le fileprotocole.
Andrew Thaddeus Martin

Réponses:

81

Recherchez le chemin de votre exécutable Chrome puis, sur votre cmd, essayez:

> "C:\PathTo\Chrome.exe" --allow-file-access-from-files

La source

EDIT: Comme je le vois sur votre question, n'oubliez pas que Windows est un peu similaire à Unix, donc lorsque vous tapez "chrome ...", cmd recherchera Chrome dans le PATH, mais en général, le dossier Chrome n'est pas pas sur le CHEMIN. De plus, vous ne spécifiez pas d'extension pour votre exécutable ... Donc, si vous vous déplacez vers le dossier de Chrome, cette commande fonctionnera probablement aussi:

> .\chrome.exe --allow-file-access-from-files
Mohamed Amine
la source
2
J'ai redémarré mon ordinateur et fais la même chose que vous dites, et cela semble bien. Je vous remercie.
AmyWuGo
2
Selon le commentaire de Philippe, vous devez quitter tous les processus de chrome et redémarrer avec l'option de ligne de commande. (Windows 7)
yoyo
2
Si cela ne fonctionne pas après le redémarrage de Chrome, vérifiez les processus d'arrière-plan en cours d'exécution (icône de chrome près des horloges). L'option "Laisser Google Chrome s'exécuter en arrière-plan" est peut-être activée.
Alex Klaus
1
@Abdul Oui, exactement, sauf si vous créez un raccourci avec l'indicateur et démarrez Chrome à partir de celui-ci.
Mohamed Amine
3
Star Chrome à partir de Windows PowerShell:Start-Process "chrome.exe" "--allow-file-access-from-files"
Peppe LG
114

Ce drapeau est dangereux !! Laisse votre système de fichiers ouvert pour l'accès. Les documents provenant de n'importe où, local ou Web, ne doivent pas, par défaut, avoir accès aux ressources locales file: ///.

Une bien meilleure solution consiste à exécuter un petit serveur http localement.

--- Pour les fenêtres ---

Le plus simple est d'installer le serveur http globalement à l'aide du gestionnaire de packages de node:

npm install -g http-server

Ensuite, exécutez simplement http-serverdans l'un de vos répertoires de projet:

Par exemple. d:\my_project> http-server

Starting up http-server, serving ./
Available on:
 http:169.254.116.232:8080
 http:192.168.88.1:8080
 http:192.168.0.7:8080
 http:127.0.0.1:8080
Hit CTRL-C to stop the server

Ou comme prusswan l'a suggéré, vous pouvez également installer Python sous Windows et suivre les instructions ci-dessous.

--- Pour Linux ---

Comme Python est généralement disponible dans la plupart des distributions Linux, exécutez simplement python -m SimpleHTTPServerdans le répertoire de votre projet et vous pouvez charger votre page surhttp://localhost:8000

Dans Python 3, le SimpleHTTPServermodule a été fusionné http.server, donc la nouvelle commande est python3 -m http.server.

Facile et sans risque de sécurité de laisser accidentellement votre navigateur ouvert vulnérable.

Orszaczky
la source
9
CECI devrait être la réponse acceptée! Je suis venu ici à la recherche de la bonne façon d'utiliser l' --allow-file-access-to-filesoption de ligne de commande avec Chrome (et Opera). Votre réponse me fait savoir que ma question est fausse, pour une raison importante. En plus de tout cela, vous avez rédigé votre solution de manière concise et facile à suivre. Merci un milliard! Je suggérerais également, @orszaczky, que vous écriviez essentiellement la même réponse pour la question SO qui était liée à cette question originale, à savoir cette autre question . Je pourrais l'écrire mais tu mérites le crédit.
Andrew Willems
24
C'est peut-être une excellente suggestion, mais ce n'est pas en fait une réponse à la question. La question n'était pas "quel est le meilleur moyen d'accéder aux fichiers locaux dans chrome" mais précisément "comment puis-je lancer avec ce drapeau". Si vous êtes conscient des risques et n'ouvrez rien que vous n'avez pas créé, ou si vous n'êtes même pas en ligne ... c'est parfaitement bien. Il y a des raisons pour lesquelles cela est utile. Je suppose que c'est la raison pour laquelle Google en a fait une option.
TinMonkey
2
C'est drôle que vous recommandiez aux gens d'installer node plutôt que python sur Windows, juste pour héberger ce simple serveur. Comme si l'option python ne convenait pas à Windows (ce qui n'est pas le cas). Quand tout ce que vous avez est un marteau, tout ressemble à un clou?
prusswan
15
Cette réponse ne fait que semer la peur. L' --allow-file-access-from-filesoption permet à une file://page Web d'accéder à d'autres file://ressources, c'est tout. Cela ne laisse pas votre système de fichiers ouvert.
GetFree
3
Ce n'est pas la réponse à la question. Certaines personnes peuvent vraiment en avoir besoin, par exemple j'utilise une bibliothèque d'applications Webkit spéciale Coherent UIGT. Lorsque je teste, j'ai besoin d'un accès aux fichiers locaux. BTW, Firefox prend en charge le fichier: // chargement d'un autre fichier local.
Eric
29

Vous pouvez essayer Web Server pour Chrome , qui sert des pages Web à partir d'un dossier local en utilisant HTTP. Il est simple à utiliser et éviterait l'indicateur qui, comme quelqu'un l'a mentionné ci-dessus, pourrait rendre votre système de fichiers vulnérable.

Capture d'écran du serveur Web pour Chrome

Gail Parsloe
la source
3
Brillant. C'est la solution conviviale que je recherchais, merci.
jay-danger
1
c'est génial. Exactement quel besoin pour ce problème.
A. Denis
21

Au moment d'écrire ces lignes, sous OS X, cela ressemblera généralement à ceci

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files

Si vous êtes un monstre comme moi et que vous mettez vos applications ~/Applications, alors ce sera

"/Users/yougohere/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --allow-file-access-from-files

Si aucun de ceux-ci ne fonctionne, saisissez chrome://versionvotre barre d'adresse Chrome, et elle vous indiquera quelle invocation de "ligne de commande" vous devez utiliser. Ajoutez simplement --allow-file-access-from-filesà cela.

Ponts d'argile
la source
"chrome: // version dans votre barre d'adresse Chrome, et il vous dira quelle invocation de" ligne de commande "vous devriez utiliser" Que le point
JCH77
15

Ne fais pas ça! Vous ouvrez votre machine aux attaques . À la place, 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 pointez votre navigateur vers

http://localhost:8000

Si vous trouvez que c'est trop lent, envisagez cette solution

gman
la source
+1 vers le lien vers stackoverflow.com/questions/12905426/…
ESRogs
1
Ces attaques sont pour --disable-web-security, non --allow-file-access-from-files, donc elles ne fonctionneront pas - juste pour que les gens sachent. Il y a un risque, mais ce n'est pas près de cette taille.
Avez-vous même lu l'article? Au moins une des attaques est possible avec juste --allow-file-access-from-filesqui. Pourquoi prendre le risque du tout alors que la méthode du risque zéro est si simple?
gman
@JoeRocc, merci pour le vote défavorable et merci pour aider les gens à débloquer leurs machines. Vous êtes un vrai héros
gman
1
Ceci, comme toutes les autres variantes de ceci, n'est pas la bonne réponse, ni même le problème. Ce que vous suggérez est en fait faux. Le lancement avec cette option n'ouvre pas votre machine aux attaques. Il, de manière contrôlée, «désactive la mise en œuvre myope / paresseuse d'une mesure de sécurité trop large. Un fichier HTML ou SVG local doit absolument avoir accès au contenu file: protocol, tel que son propre fichier .css.
Minok le
6

Si vous utilisez un mac, vous pouvez utiliser la commande de terminal suivante:

open -a Google\ Chrome --args --allow-file-access-from-files
taz
la source
1

Quittez (forcez) toutes les instances de chrome. Sinon, la commande ci-dessous ne fonctionnera pas.

open -a "Google Chrome" --args --allow-file-access-from-files

L'exécution de cette commande dans le terminal ouvrira Chrome quel que soit l'endroit où il est installé.

Matt Perejda
la source
1
"Quitter toutes les instances" - C'est vrai d'après mon expérience (sous Linux). Il s'agit apparemment d'un état partagé qui ne peut être défini que sur un nouveau lancement.
Brent Bradburn
0

Sur Windows:

chrome --allow-file-access-from-files file:///C:/test%20-%203.html

Sur Linux:

google-chrome --allow-file-access-from-files file:///C:/test%20-%203.html
Bonn
la source
0
REM Kill all existing instance of chrome 
taskkill /F /IM chrome.exe /T
REM directory path where chrome.exe is located
set chromeLocation="C:\Program Files (x86)\Google\Chrome\Application"
cd %chromeLocation%
cd c:
start chrome.exe --allow-file-access-from-files

enregistrer les lignes ci-dessus sous forme de fichier .bat

Yogesh Jog
la source
taskkill / F / IM chrome.exe / T Utile pour ne pas redémarrer mon ordinateur
JCH77
0

En fonction du fichier qui sera placé dans le système de fichiers, tant que ce fichier n'est pas un malware, alors ce serait sûr.

Mais ne vous inquiétez pas d'écrire / lire des fichiers dans le répertoire du système de fichiers, car vous pouvez renforcer la sécurité de ce répertoire (y compris son héritage) en donnant un droit d'accès et une restriction de sécurité appropriés. par exemple: lecture / écriture / modification.

Par défaut, le système de fichiers, le stockage local et le répertoire de stockage se trouvent dans le répertoire "\ Users [Utilisateur actuel] \ AppData \ Local \ Google \ Chrome \ User Data \ Default".

Cependant, vous pouvez le personnaliser en utilisant l'indicateur "--user-data-dir".

Et voici un échantillon:

"C:\Program Files (x86)\Google\Application\chrome.exe" --user-data-dir="C:\Chrome_Data\OO7" --allow-file-access-from-files

J'espère que cela aide n'importe qui.

jo0gbe4bstjb
la source
0

Eh bien, il est rapide d'exécuter un html qui nécessite une autorisation ou qui est bloqué par CORS Il suffit simplement d'ouvrir le dossier en utilisant VSCODE et d'installer une extension appelée "serveur en direct"

Et puis il suffit de cliquer sur le bas qui dit aller en direct, c'est tout. Capture d'écran

Prosenjeet Paul
la source