"--allow-file-access-from-files"모드에서 Chrome을 사용하여 html을 시작하는 방법은 무엇입니까?


124

나는 여기 와 같은 상황이있다

그리고이 문제를 해결하려면 "--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.google.com/webstore/detail/allow-control-allow-origi/...
로버트 Parcus

5
@RobertParcus file프로토콜을 사용하는 경우 플러그인이 작동하지 않는 것 같습니다 .
Andrew Thaddeus Martin

답변:


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의 의견에 따라 모든 크롬 프로세스를 종료하고 명령 줄 옵션으로 다시 시작해야합니다. (Windows 7)
yoyo

2
Chrome을 다시 시작한 후에도 작동하지 않으면 실행중인 백그라운드 프로세스 (시계 근처의 크롬 아이콘)를 확인하세요. "백그라운드에서 Google 크롬 실행"옵션이 켜져있을 수 있습니다.
Alex Klaus

1
@Abdul 예, 플래그로 바로 가기를 만들고 여기에서 Chrome을 시작하지 않는 한 정확합니다.
Mohamed Amine 2015

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

114

그 깃발은 위험 해 !! 액세스 할 수 있도록 파일 시스템을 열어 둡니다. 로컬 또는 웹 어디에서나 생성 된 문서는 기본적으로 로컬 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) 에서 명령 줄 옵션 을 사용하는 올바른 방법을 찾고 있습니다. 귀하의 답변은 중요한 이유로 내 질문이 잘못되었음을 알려줍니다. 무엇보다 간결하고 따라하기 쉬운 방식으로 솔루션을 작성했습니다. 감사합니다! 나는 또한 @orszaczky,이 원래 질문에 연결된 SO 질문, 즉 이 다른 질문에 대해 본질적으로 동일한 답변을 작성하도록 제안 합니다. 나는 그것을 쓸 수 있지만 당신은 신용을받을 자격이 있습니다.
Andrew Willems

24
이것은 참으로 훌륭한 제안 일 수 있지만 실제로는 질문에 대한 답이 아닙니다. 질문은 "크롬에서 로컬 파일에 액세스하는 가장 좋은 방법"이 아니라 "이 플래그로 실행하는 방법"이었습니다. 당신이 위험을 알고 있고 당신이 만들지 않은 것을 열지 않았거나 당신이 심지어 온라인이 아니더라도 .. 완벽하게 괜찮습니다. 이것이 유용한 이유가 있습니다 .. 내가 생각하는 것은 구글이 그것을 옵션으로 만든 이유입니다.
TinMonkey

2
이 간단한 서버를 호스팅하기 위해 Windows에 Python 대신 노드를 설치하도록 사람들에게 권장하는 것은 재미 있습니다. python 옵션이 Windows에 적합하지 않은 것처럼 (그렇지 않습니다). 망치 만 있으면 모든 게 못처럼 보이나요?
prusswan

15
이 대답은 두려움을 퍼뜨리는 것입니다. 이 --allow-file-access-from-files옵션을 사용하면 file://웹 페이지에서 다른 file://리소스에 액세스 할 수 있습니다 . 파일 시스템을 열어 두지 않습니다.
GetFree

3
질문에 대한 답이 아닙니다. 어떤 사람들은 이것이 정말로 필요할 수 있습니다. 예를 들어 저는 특별한 웹킷 앱 라이브러리 인 Coherent UIGT를 사용하고 있습니다. 테스트 할 때 로컬 파일 액세스가 필요합니다. BTW, Firefox는 file : //로드 다른 로컬 파일을 지원합니다.
에릭

29

HTTP를 사용하여 로컬 폴더에서 웹 페이지를 제공하는 Chrome 용 웹 서버 를 사용해 볼 수 있습니다 . 사용하기 쉽고 위에서 언급했듯이 파일 시스템을 취약하게 만들 수있는 플래그를 피할 수 있습니다.

Chrome 용 웹 서버 스크린 샷


3
훌륭한. 이것이 제가 찾고 있던 사용자 친화적 인 솔루션입니다. 감사합니다.
제이 - 위험

1
훌륭합니다. 이 문제에 정확히 무엇이 필요합니다.
A. Denis

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://versionChrome 주소 표시 줄에 입력 하면 어떤 "명령 줄"호출을 사용해야하는지 알려줍니다. --allow-file-access-from-files그것에 추가하십시오 .


"Chrome 주소 표시 줄에 chrome : // version을 입력하면 어떤"명령 줄 "호출을 사용해야하는지 알려줍니다."요점
JCH77

15

이러지마! 당신은 공격을 위해 당신의 기계를 열고 있습니다 . 대신 로컬 서버를 실행하십시오. 셸 / 터미널 / 명령 줄을 열고 입력하는 것만 큼 쉽습니다.

cd path/to/files
python -m SimpleHTTPServer

그런 다음 브라우저를

http://localhost:8000

너무 느리다면 이 솔루션을 고려하십시오.



1
이러한 공격은를위한 --disable-web-security것이 아니라를 위한 --allow-file-access-from-files것이기 때문에 작동하지 않을 것입니다. 위험은 있지만 그 크기에 가까운 곳은 없습니다.

기사를 읽었습니까? 적어도 하나의 공격이 가능합니다 --allow-file-access-from-files. 위험 제로 방식이 그렇게 간단 할 때 왜 위험을 감수할까요?
G 맨

@JoeRocc, 반대 투표에 감사 드리며 사람들이 기계 보안을 해제하도록 도와 주셔서 감사합니다. 당신은 진정한 영웅
G 맨

1
이것의 다른 모든 변형과 마찬가지로 이것은 정답도 문제도 아닙니다. 당신이 제안하는 것은 사실적으로 잘못되었습니다. 이 옵션으로 시작해도 컴퓨터가 공격에 노출되지는 않습니다. 그것은 통제 된 방식으로 '너무 광범위한 보안 클램프의 근시 / 지연 구현을 비활성화합니다. 로컬 HTML 또는 SVG 파일은 자체 .css 파일과 같은 file : 프로토콜 콘텐츠에 절대적으로 액세스 할 수 있어야합니다.
Minok

6

Mac을 사용하는 경우 다음 터미널 명령을 사용할 수 있습니다.

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

1

모든 크롬 인스턴스를 종료 (강제 종료)합니다. 그렇지 않으면 아래 명령이 작동하지 않습니다.

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

터미널에서이 명령을 실행하면 설치된 위치에 관계없이 Chrome이 열립니다.


1
"모든 인스턴스 종료"-내 경험 (Linux에서)에 해당합니다. 이는 새로 출시 될 때만 설정할 수있는 공유 상태입니다.
Brent Bradburn

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 [현재 사용자] \ 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.