「--allow-file-access-from-files」モードでChromeを使用してhtmlを起動する方法


124

私は同じような状況を持っているHERE

この問題を解決するには、「-allow-file-access-from-files」モードでChromeを使用してhtmlファイルを起動する必要があります。次の手順を何度も試しましたが、うまくいきません。

  1. Windows 7でcmdを起動します
  2. chrome.exeフォルダに直接
  3. これを行う chrome --allow-file-access-from-files file:///C:/test%20-%203.html

1
そのためにChromeプラグインを使用することもできます。私はそれが最も実用的な方法だと思います。これはほんの一例です。chrome.google.com/webstore/detail/allow-control-allow-origi/...
ロバートParcus

5
@RobertParcus fileプロトコルを使用している場合、そのプラグインは機能しないようです。
Andrew Thaddeus Martin 2015

回答:


81

Chrome実行可能ファイルのパスを検索してから、cmdで次のことを試してください。

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

ソース

編集: 私があなたの質問で見るように、WindowsがUnixに少し似ていることを忘れないでください、それで、「chrome ...」とタイプすると、cmdはPATHでChromeを検索しますが、一般的にChromeフォルダはそうではありませんPATH上にありません。また、実行可能ファイルの拡張子を指定しません...したがって、Chromeのフォルダーに移動した場合、このコマンドもおそらく機能します。

> .\chrome.exe --allow-file-access-from-files

2
私はコンピュータを再起動し、あなたが言うのと同じことを行いました、そしてそれは問題ないようです。ありがとうございました。
AmyWuGo

2
Philippeのコメントに従って、すべてのChromeプロセスを終了し、コマンドラインオプションで再起動する必要があります。(Windows 7)
yoyo

2
Chromeを再起動しても機能しない場合は、実行中のバックグラウンドプロセス(時計の近くのChromeアイコン)を確認してください。[Google Chromeをバックグラウンドで実行する]オプションをオンにしている可能性があります。
Alex Klaus、

1
@Abdulはい、そうです。フラグ付きのショートカットを作成して、そこからChromeを起動する場合を除きます。
Mohamed Amine 2015

3
Windows PowerShellのスタークローム:Start-Process "chrome.exe" "--allow-file-access-from-files"
Peppe LG

114

あの旗は危ない!! アクセスのためにファイルシステムを開いたままにします。ローカルまたはWebのどこから発信されたドキュメントも、デフォルトではローカルのfile:///リソースにアクセスできません。

より良い解決策は、小さなhttpサーバーをローカルで実行することです。

--- Windowsの場合---

最も簡単な方法は、ノードのパッケージマネージャを使用してhttp-serverをグローバルにインストールすることです。

npm install -g http-server

次にhttp-server、プロジェクトディレクトリのいずれかで実行します。

例えば。 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

または、prusswanが示唆したように、WindowsにPythonをインストールして、以下の手順に従うこともできます。

--- Linuxの場合---

Pythonは通常、ほとんどのLinuxディストリビューションで使用できるためpython -m SimpleHTTPServer、プロジェクトディレクトリで実行するだけで、ページをロードできます。http://localhost:8000

Python 3では、SimpleHTTPServerモジュールがにマージされたhttp.serverため、新しいコマンドはpython3 -m http.serverです。

簡単で、誤ってブラウザを開いたままにしておくというセキュリティ上のリスクはありません。


9
これが受け入れられる答えになるはずです!私は--allow-file-access-to-filesChrome(およびOpera)でコマンドラインオプションを使用する正しい方法を探してここに来ました。あなたの答えは私に重要な理由で私の質問が間違っていることを知らせます。さらに、ソリューションを簡潔でわかりやすい方法で記述しました。10億ありがとう!また、@ orszaczky、この元の質問、つまりこの他の質問にリンクされていたSO質問に対して、本質的に同じ回答を書くことをお勧めします。私はそれを書くことができますが、あなたは信用に値します。
Andrew Willems 2016年

24
これは確かに素晴らしい提案かもしれませんが、実際には質問に対する答えではありません。問題は、「Chromeのローカルファイルにアクセスする最良の方法は何ですか」ではなく、具体的には「このフラグを使用して起動する方法」でした。リスクを認識していて、自分で作成していないものを開かない場合、またはオンラインでさえいない場合は、問題ありません。これが役立つ理由はいくつかあります。Googleがこれをオプションにした理由は、私が推測するところです。
TinMonkey 2016

2
この単純なサーバーをホストするためだけに、Windowsにpythonではなくnodeをインストールすることを推奨するのはおかしいです。まるでpythonオプションがWindowsには適していないようです(そうではありません)。 あなたが持っているすべてがハンマーであるとき、すべてが釘のように見えますか?
prusswan 2016年

15
この答えは恐怖を広めるだけです。この--allow-file-access-from-filesオプションを使用すると、file://Webページから他のfile://リソースにアクセスできます。それだけです。ファイルシステムを開いたままにするわけではありません。
GetFree

3
それは質問に対する答えではありません。一部の人々は本当にこれを必要とするかもしれません、例えば私は特別なwebkitアプリライブラリCoherent UIGTを使っています。テストするとき、ローカルファイルアクセスが必要です。ところで、Firefoxはfile://で別のローカルファイルの読み込みをサポートしています。
エリック

29

HTTPを使用してローカルフォルダーからWebページを提供するChrome用Webサーバーを試してみるとよいでしょう。これは簡単に使用でき、フラグを回避します。これにより、前述のように、ファイルシステムが脆弱になる可能性があります。

Chrome用Webサーバーのスクリーンショット


3
鮮やかさ。これは私が探していたユーザーフレンドリーなソリューションです、ありがとう。
ジェイデンジャー

1
それは素晴らしいことです。まさにこの問題の必要性。
A.デニス

21

これを書いている時点では、OS Xでは通常、次のようになります。

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

あなたが私のようなフリークで~/Applications、アプリをに置くと、

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

どちらも機能していない場合chrome://versionは、Chromeのアドレスバーに入力すると、使用する必要のある「コマンドライン」の呼び出しが表示されます。それに追加--allow-file-access-from-filesするだけです。


「Chromeアドレスバーのchrome:// versionを使用すると、使用する必要のある「コマンドライン」の呼び出しが
わかり

15

これを行わないでください! あなたは攻撃のためにあなたのマシンを開いています。代わりに、ローカルサーバーを実行します。シェル/ターミナル/コマンドラインを開いて入力するのと同じくらい簡単です

cd path/to/files
python -m SimpleHTTPServer

次に、ブラウザで

http://localhost:8000

遅すぎる場合は、この解決策を検討してください



1
これらの攻撃はに対するものであり、に対するもので--disable-web-securityはないため、機能しません--allow-file-access-from-files。リスクはありますが、そのサイズに近いところはありません。

あなたも記事を読みましたか?少なくとも1つの攻撃が可能--allow-file-access-from-filesです。リスクゼロの方法がとてもシンプルなのに、なぜリスクを取るのか?
gman

@JoeRocc、投票に感謝し、マシンのセキュリティを解除するのを手伝ってくれてありがとう。あなたは本当のヒーローです
gman

1
これは、他のすべてのバリエーションと同様に、正解でも問題でもありません。あなたが示唆していることは事実上間違っています。そのオプションで起動しても、マシンが攻撃されることはありません。それは、制御された方法で、広すぎるセキュリティクランプの近視/遅延の実装を無効にします。ローカルHTMLまたはSVGファイルは、絶対にfile:プロトコルコンテンツ(独自の.cssファイルなど)にアクセスできる必要があります。
Minok

6

Macを使用している場合は、次の端末コマンドを使用できます。

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

1

chromeのすべてのインスタンスを終了(強制終了)します。そうでない場合、以下のコマンドは機能しません。

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

ターミナルでこのコマンドを実行すると、インストールされている場所に関係なくChromeが開きます。


1
「すべてのインスタンスを終了」-これは私の経験(Linuxの場合)に当てはまります。これは明らかに、最初の起動時にのみ設定できる共有状態です。
ブレントブラッドバーン、

0

Windowsの場合:

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

Linuxの場合:

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

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

上記の行を.batファイルとして保存


taskkill / F / IM chrome.exe / Tコンピュータを再起動しないのに便利
JCH77

0

ファイルシステムに入れられるファイルによっては、そのファイルがマルウェアでない限り、それは安全です。

ただし、ファイルシステムディレクトリへのファイルの書き込み/読み取りを心配する必要はありません。適切なアクセス権とセキュリティ制限を与えることにより、そのディレクトリのセキュリティ(継承を含む)を強化できます。例:読み取り/書き込み/変更。

デフォルトでは、ファイルシステム、ローカルストレージ、ストレージディレクトリは「\ Users [Current User] \ AppData \ Local \ Google \ Chrome \ User Data \ Default」ディレクトリにあります。

ただし、「-user-data-dir」フラグを使用してカスタマイズできます。

そして、これはサンプルです:

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

これが誰にも役立つことを願っています。


0

許可が必要な、またはCORSでブロックされているhtmlをすばやく実行できます。VSCODEを使用してフォルダーを開き、「ライブサーバー」と呼ばれる拡張機能をインストールするだけです。

次に、「ライブに移行する」という下部をクリックします。 スクリーンショット

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.