Jak uruchomić html w przeglądarce Chrome w trybie „--allow-file-access-from-files”?


124

Mam taką samą sytuację z TUTAJ

Aby rozwiązać ten problem, muszę uruchomić plik html w przeglądarce Chrome w trybie „--allow-file-access-from-files”. Wiele razy próbowałem wykonać kolejne kroki, ale to nie działa.

  1. uruchom cmd pod Windows 7
  2. bezpośrednio do folderu chrome.exe
  3. Zrób to chrome --allow-file-access-from-files file:///C:/test%20-%203.html

1
Możesz również użyć do tego wtyczki Chrome. Uważam to za najbardziej praktyczny sposób. To tylko jeden przykład: chrome.google.com/webstore/detail/allow-control-allow-origi/…
— Robert Parcus

5
@RobertParcus Ta wtyczka nie działa, jeśli używasz fileprotokołu.
— Andrew Thaddeus Martin

Odpowiedzi:


81

Wyszukaj ścieżkę do pliku wykonywalnego Chrome, a następnie w cmd spróbuj:

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

Źródło

EDYCJA: Jak widzę w twoim pytaniu, nie zapominaj, że Windows jest trochę podobny do Uniksa, więc kiedy wpiszesz "chrome ...", cmd wyszuka Chrome w PATH, ale ogólnie folder Chrome nie jest na PATH. Ponadto nie określasz rozszerzenia dla swojego pliku wykonywalnego ... Więc jeśli przejdziesz do folderu Chrome, to polecenie prawdopodobnie też zadziała:

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

2
Zrestartowałem komputer i robię to samo, co mówisz, i wydaje się w porządku. Dziękuję Ci.
— AmyWuGo,

2
Zgodnie z komentarzem Philippe'a, musisz zamknąć wszystkie procesy chrome i ponownie uruchomić z opcją wiersza poleceń. (Windows 7)
— yoyo

2
Jeśli nie działa po ponownym uruchomieniu Chrome, sprawdź uruchomione procesy w tle (ikona chrome obok zegarów). Być może opcja „Pozwól Google Chrome działać w tle” jest WŁĄCZONA.
— Alex Klaus

1
@Abdul Tak, dokładnie, chyba że utworzysz skrót z flagą i uruchomisz z niego Chrome.
— Mohamed Amine

3
Star Chrome z Windows PowerShell:Start-Process "chrome.exe" "--allow-file-access-from-files"
— Peppe LG

114

Ta flaga jest niebezpieczna !! Pozostawia otwarty system plików w celu uzyskania dostępu. Dokumenty pochodzące z dowolnego miejsca, lokalnego lub internetowego, domyślnie nie powinny mieć dostępu do lokalnych zasobów file: ///.

Dużo lepszym rozwiązaniem jest lokalne uruchomienie małego serwera http.

--- Dla Windowsa ---

Najłatwiej jest zainstalować serwer http globalnie za pomocą menedżera pakietów node:

npm install -g http-server

Następnie po prostu uruchom http-serverw dowolnym katalogu projektu:

Na przykład. 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

Lub, jak sugerował prusswan, możesz również zainstalować Pythona pod oknami i postępować zgodnie z poniższymi instrukcjami.

--- W systemie Linux ---

Ponieważ Python jest zwykle dostępny w większości dystrybucji Linuksa, po prostu uruchom go python -m SimpleHTTPServerw katalogu projektu i możesz załadować swoją stronę nahttp://localhost:8000

W Pythonie 3 SimpleHTTPServermoduł został scalony z http.server, więc nowe polecenie to python3 -m http.server.

Łatwe i bez ryzyka przypadkowego pozostawienia otwartej przeglądarki podatnej na zagrożenia.


9
TO powinna być zaakceptowana odpowiedź! Przyszedłem tutaj, szukając właściwego sposobu korzystania z --allow-file-access-to-filesopcji wiersza poleceń w przeglądarce Chrome (i Opera). Twoja odpowiedź pozwala mi wiedzieć, że moje pytanie jest błędne z ważnego powodu. Co więcej, napisałeś swoje rozwiązanie w zwięzły i łatwy do zrozumienia sposób. Dzięki miliardowi! Sugerowałbym również, @orszaczky, abyś napisał w zasadzie tę samą odpowiedź na pytanie SO, które było połączone w tym pierwotnym pytaniu, czyli to drugie pytanie . Mógłbym to napisać, ale zasługujesz na uznanie.
— Andrew Willems

24
To rzeczywiście może być świetna sugestia, ale w rzeczywistości nie jest to odpowiedź na pytanie. Pytanie nie brzmiało „jaki jest najlepszy sposób uzyskiwania dostępu do lokalnych plików w chrome”, a konkretnie „jak uruchomić z tą flagą”. Jeśli zdajesz sobie sprawę z zagrożeń i nie otwierasz niczego, czego nie stworzyłeś, lub jeśli nie jesteś nawet w trybie online ... to jest w porządku. Są powody, dla których jest to przydatne… które, jak przypuszczam, są powodem, dla którego Google wybrało tę opcję.
— TinMonkey

2
Zabawne jest to, że zalecałbyś ludziom instalowanie węzła zamiast Pythona w systemie Windows, tylko do hostowania tego prostego serwera. Jakby opcja pythona byłaby nieodpowiednia dla systemu Windows (a tak nie jest). Kiedy wszystko co masz to młotek, wszystko wygląda jak gwóźdź?
— prusswan

16
Ta odpowiedź po prostu szerzy strach. Ta --allow-file-access-from-filesopcja umożliwia file://stronie internetowej dostęp do innych file://zasobów, to wszystko. Nie pozostawia otwartego systemu plików.
— GetFree

3
To nie jest odpowiedź na pytanie. Niektórzy ludzie mogą tego naprawdę potrzebować, np. Używam specjalnej biblioteki aplikacji Webkit Coherent UIGT. Kiedy testuję, potrzebuję dostępu do plików lokalnych. BTW, Firefox obsługuje file: // ładowanie innego lokalnego pliku.
— Eric

29

Możesz spróbować Web Server for Chrome , który obsługuje strony internetowe z folderu lokalnego przy użyciu protokołu HTTP. Jest prosty w użyciu i pozwala uniknąć flagi, która, jak ktoś wspomniany powyżej, może narazić system plików na podatność.

Zrzut ekranu serwera internetowego dla przeglądarki Chrome


3
Znakomity. To jest rozwiązanie przyjazne dla użytkownika, którego szukałem, dzięki.
— Jay-

1
to wspaniale. Dokładnie po co ten problem.
— A. Denis

21

W chwili pisania tego tekstu w systemie OS X zwykle będzie to wyglądać tak

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

Jeśli jesteś dziwakiem jak ja i umieścisz swoje aplikacje ~/Applications, to będzie

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

Jeśli żadne z nich nie działa, wpisz chrome://versionw pasku adresu Chrome, a powie Ci, jakiego wywołania z wiersza poleceń powinieneś użyć. Po prostu dodaj --allow-file-access-from-filesdo tego.


„chrome: // version” na pasku adresu Chrome i powie Ci, jakiego wywołania „wiersza poleceń” należy użyć. „I o to chodzi
— JCH77

15

Nie rób tego! Otwierasz swoją maszynę na ataki . Zamiast tego uruchom serwer lokalny. To tak proste, jak otwarcie powłoki / terminala / wiersza poleceń i wpisanie

cd path/to/files
python -m SimpleHTTPServer

Następnie skieruj przeglądarkę na

http://localhost:8000

Jeśli uznasz, że jest za wolny, rozważ to rozwiązanie



1
Te ataki są dla --disable-web-security, nie --allow-file-access-from-files, więc nie zadziałają - tylko po to, żeby ludzie wiedzieli. Istnieje ryzyko, ale nie jest blisko tej wielkości.

Czy Ty w ogóle przeczytałeś ten artykuł? Przynajmniej jeden z ataków jest możliwy tylko za pomocą --allow-file-access-from-filesktórego. Po co w ogóle ryzykować, skoro metoda zerowego ryzyka jest tak prosta?
— gman

@JoeRocc, dziękuję za głos przeciw i dziękuję za pomoc ludziom w zabezpieczaniu ich maszyn. Jesteś prawdziwym bohaterem
— gman

1
To, podobnie jak wszystkie inne odmiany tego, nie jest poprawną odpowiedzią, ani nawet problemem. To, co sugerujesz, jest błędne. Uruchomienie z tą opcją nie otwiera twojego komputera na ataki. W kontrolowany sposób „wyłącza krótkowzroczną / leniwą implementację zbyt szerokiego ograniczenia bezpieczeństwa. Lokalny plik HTML lub SVG powinien bezwzględnie mieć dostęp do zawartości pliku: protokołu, na przykład własnego pliku .css.
— Minok

6

Jeśli używasz komputera Mac, możesz użyć następującego polecenia terminala:

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

1

Zamknij (wymuś zamknięcie) wszystkie wystąpienia przeglądarki Chrome. W przeciwnym razie poniższe polecenie nie będzie działać.

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

Wykonanie tego polecenia w terminalu otworzy Chrome niezależnie od tego, gdzie jest zainstalowany.


1
„Zamknij wszystkie instancje” - z mojego doświadczenia wynika, że ​​(w systemie Linux). Jest to najwyraźniej wspólny stan, który można ustawić tylko przy nowym uruchomieniu.
— Brent Bradburn,

0

W systemie Windows:

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

W systemie 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

zapisz powyższe wiersze jako plik .bat


taskkill / F / IM chrome.exe / T Przydatne, aby nie uruchamiać ponownie komputera
— JCH77

0

W zależności od pliku, który zostanie umieszczony w systemie plików, o ile plik ten nie jest złośliwym oprogramowaniem, będzie to bezpieczne.

Ale nie przejmuj się zapisywaniem / odczytywaniem plików w katalogu systemu plików, ponieważ możesz zwiększyć bezpieczeństwo tego katalogu (uwzględnić jego dziedziczenie), nadając odpowiednie prawo dostępu i ograniczenie bezpieczeństwa. np: czytaj / zapisuj / modyfikuj.

Domyślnie system plików, pamięć lokalna i katalog przechowywania znajdują się w katalogu „\ Users [Current User] \ AppData \ Local \ Google \ Chrome \ User Data \ Default”.

Możesz go jednak dostosować, używając flagi "--user-data-dir".

A to jest próbka:

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

Mam nadzieję, że to pomoże każdemu.


0

Cóż, można szybko uruchomić kod HTML, który wymaga pozwolenia lub jest blokowany przez CORS Po prostu otwórz folder za pomocą VSCODE i zainstaluj rozszerzenie o nazwie „serwer na żywo”

A potem po prostu kliknij na dole, który mówi o transmisji na żywo, to wszystko. Zrzut ekranu

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.