Làm cách nào để khởi chạy html bằng Chrome ở chế độ “--allow-file-access-from-files”?


124

Tôi gặp trường hợp tương tự với TẠI ĐÂY

Và để giải quyết vấn đề này, tôi phải khởi chạy tệp html bằng Chrome ở chế độ "--allow-file-access-from-files". Tôi đã thử các bước tiếp theo nhiều lần, nhưng nó không hoạt động.

  1. bắt đầu cmd trong windows 7
  2. trực tiếp đến thư mục chrome.exe
  3. làm cái này chrome --allow-file-access-from-files file:///C:/test%20-%203.html

1
Bạn cũng có thể sử dụng một plugin chrome cho việc đó. Tôi thấy đó là cách thiết thực nhất. Đây chỉ là một ví dụ: chrome.google.com/webstore/detail/allow-control-allow-origi/…
Robert Parcus

5
@RobertParcus Plugin đó dường như không hoạt động nếu bạn đang sử dụng filegiao thức.
Andrew Thaddeus Martin

Câu trả lời:


81

Tìm kiếm đường dẫn của tệp thực thi Chrome của bạn và sau đó, trên cmd của bạn, hãy thử:

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

Nguồn

CHỈNH SỬA: Như tôi thấy trong câu hỏi của bạn, đừng quên rằng Windows hơi giống với Unix, vì vậy khi bạn gõ "chrome ...", cmd sẽ tìm kiếm Chrome trong PATH, nhưng nói chung thư mục Chrome không trên PATH. Ngoài ra, bạn không chỉ định tiện ích mở rộng cho tệp thực thi của mình ... Vì vậy, nếu bạn di chuyển đến thư mục của Chrome, lệnh này có thể cũng sẽ hoạt động:

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

2
Tôi đã khởi động lại máy tính của mình và làm như bạn nói, và nó có vẻ ổn. Cảm ơn bạn.
AmyWuGo

2
Theo nhận xét của Philippe, bạn cần thoát khỏi tất cả các quy trình chrome và khởi động lại bằng tùy chọn dòng lệnh. (Windows 7)
yoyo

2
Nếu nó không hoạt động sau khi khởi động lại Chrome, hãy kiểm tra các quy trình nền đang chạy (biểu tượng chrome gần đồng hồ). Bạn có thể BẬT tùy chọn "Cho phép Google Chrome chạy trong nền".
Alex Klaus

1
@Abdul Đúng vậy, trừ khi bạn tạo lối tắt có cờ và khởi động Chrome từ đó.
Mohamed Amine

3
Sao Chrome từ Windows PowerShell:Start-Process "chrome.exe" "--allow-file-access-from-files"
Peppe LG

114

Cờ nguy hiểm đó !! Mở hệ thống tệp của bạn để truy cập. Các tài liệu có nguồn gốc từ bất kỳ đâu, cục bộ hoặc web, theo mặc định, không được phép truy cập vào tệp cục bộ: /// resources.

Giải pháp tốt hơn nhiều là chạy một máy chủ http cục bộ.

--- Cho cửa sổ ---

Cách dễ nhất là cài đặt http-server trên toàn cầu bằng trình quản lý gói của nút:

npm install -g http-server

Sau đó, chỉ cần chạy http-servertrong bất kỳ thư mục dự án nào của bạn:

Ví dụ. 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

Hoặc như prusswan đề xuất, bạn cũng có thể cài đặt Python trong windows và làm theo hướng dẫn bên dưới.

--- Đối với Linux ---

Vì Python thường có sẵn trong hầu hết các bản phân phối linux, chỉ cần chạy python -m SimpleHTTPServertrong thư mục dự án của bạn và bạn có thể tải trang của mình trênhttp://localhost:8000

Trong Python 3, SimpleHTTPServermô-đun đã được hợp nhất vào http.server, vì vậy lệnh mới là python3 -m http.server.

Dễ dàng và không có rủi ro bảo mật nếu vô tình để trình duyệt của bạn mở dễ bị tấn công.


9
ĐÂY phải là câu trả lời được chấp nhận! Tôi đến đây để tìm kiếm cách phù hợp để sử dụng --allow-file-access-to-filestùy chọn dòng lệnh với Chrome (và Opera). Câu trả lời của bạn cho tôi biết câu hỏi của tôi là sai, vì một lý do quan trọng. Trên hết, bạn đã viết giải pháp của mình một cách ngắn gọn, dễ làm theo. Cảm ơn một tỷ! Tôi cũng sẽ đề nghị, @orszaczky, về cơ bản bạn viết cùng một câu trả lời cho câu hỏi SO được liên kết trong câu hỏi gốc này, tức là câu hỏi khác này . Tôi có thể viết nó nhưng bạn xứng đáng được ghi công.
Andrew Willems

24
Đây thực sự có thể là một gợi ý tuyệt vời, nhưng trên thực tế nó không phải là một câu trả lời cho câu hỏi. Câu hỏi không phải là "cách tốt nhất để truy cập các tệp cục bộ trong chrome" mà là "làm cách nào để khởi chạy với cờ này". Nếu bạn nhận thức được rủi ro và không mở bất kỳ thứ gì bạn không tạo hoặc nếu bạn thậm chí không trực tuyến .. thì điều đó hoàn toàn ổn. Có những lý do tại sao điều này lại hữu ích .. mà tôi cho rằng đó là lý do google biến nó thành một tùy chọn.
TinMonkey

2
Thật là buồn cười khi bạn khuyên mọi người cài đặt nút thay vì python trên Windows, chỉ để lưu trữ máy chủ đơn giản này. Như thể tùy chọn python sẽ không phù hợp với Windows (mà nó không phải là). Khi tất cả những gì bạn có là một cái búa, mọi thứ trông giống như một cái đinh?
prusswan

15
Câu trả lời này chỉ đang gieo rắc nỗi sợ hãi. Các --allow-file-access-from-filestùy chọn cho phép file://truy cập trang web để khác file://các nguồn lực, đó là tất cả. Nó không để hệ thống tệp của bạn mở.
GetFree

3
Nó không phải là câu trả lời cho câu hỏi. Một số người có thể thực sự cần điều này, ví dụ: tôi đang sử dụng thư viện ứng dụng webkit đặc biệt UIGT mạch lạc. Khi tôi đang thử nghiệm, tôi cần quyền truy cập tệp cục bộ. BTW, Firefox hỗ trợ tệp: // tải một tệp cục bộ khác.
Eric

29

Bạn có thể muốn dùng thử Máy chủ web dành cho Chrome , máy chủ này cung cấp các trang web từ một thư mục cục bộ sử dụng HTTP. Nó đơn giản để sử dụng và sẽ tránh được cờ, như ai đó đã đề cập ở trên, có thể khiến hệ thống tệp của bạn dễ bị tấn công.

Ảnh chụp màn hình Máy chủ web dành cho Chrome


3
Xuất sắc. Đây là giải pháp thân thiện với người dùng mà tôi đang tìm kiếm, cảm ơn.
jay-nguy hiểm

1
thật tuyệt. Chính xác những gì cần cho vấn đề này.
A. Denis

21

Theo cách viết này, trong OS X, nó thường sẽ như thế này

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

Nếu bạn là một người lạ lùng như tôi và đưa các ứng dụng của bạn vào ~/Applications, thì nó sẽ

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

Nếu cả hai đều không hoạt động, hãy nhập chrome://versionvào thanh địa chỉ Chrome của bạn và nó sẽ cho bạn biết bạn nên sử dụng lệnh gọi "dòng lệnh" nào. Chỉ cần thêm --allow-file-access-from-filesvào đó.


"chrome: // version trong thanh địa chỉ Chrome của bạn và nó sẽ cho bạn biết bạn nên sử dụng lệnh gọi" dòng lệnh "nào" Chính xác là vậy
JCH77

15

Đừng làm điều này! Bạn đang mở máy của mình để tấn công . Thay vào đó hãy chạy một máy chủ cục bộ. Dễ dàng như mở shell / terminal / dòng lệnh và nhập

cd path/to/files
python -m SimpleHTTPServer

Sau đó, trỏ trình duyệt của bạn tới

http://localhost:8000

Nếu bạn thấy nó quá chậm, hãy xem xét giải pháp này


+1 tới liên kết tới stackoverflow.com/questions/12905426/…
ESRogs

1
Những cuộc tấn công đó là dành cho --disable-web-security, không phải --allow-file-access-from-files, vì vậy chúng sẽ không hoạt động - chỉ để mọi người biết. Có một rủi ro, nhưng nó không ở đâu gần kích thước đó.

Bạn vẫn chưa đọc bài báo à? Ít nhất một trong các cuộc tấn công có thể xảy ra chỉ với --allow-file-access-from-filesnó. Tại sao lại phải chấp nhận rủi ro khi cách rủi ro bằng 0 rất đơn giản?
gman

@JoeRocc, cảm ơn vì đã ủng hộ và cảm ơn bạn đã giúp mọi người bảo mật máy của họ. Bạn là một anh hùng thực sự
GMAN

1
Điều này, giống như tất cả các biến thể khác của điều này, không phải là câu trả lời chính xác, thậm chí không phải là vấn đề. Nó thực sự sai những gì bạn đang đề xuất. Khởi chạy với tùy chọn đó sẽ không mở máy của bạn trước các cuộc tấn công. Nó, theo một cách có kiểm soát 'vô hiệu hóa việc triển khai sai lệch / lười biếng của một khóa bảo mật quá rộng. Tệp HTML hoặc SVG cục bộ hoàn toàn phải có quyền truy cập vào nội dung tệp: giao thức, chẳng hạn như tệp .css của chính nó.
Minok

6

Nếu bạn đang sử dụng mac, bạn có thể sử dụng lệnh terminal sau:

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

1

Thoát (buộc thoát) tất cả các phiên bản của chrome. Nếu không, lệnh dưới đây sẽ không hoạt động.

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

Thực thi lệnh này trong terminal sẽ mở Chrome bất kể nó được cài đặt ở đâu.


1
"Thoát tất cả các phiên bản" - Điều này đúng theo kinh nghiệm của tôi (trên Linux). Đây rõ ràng là trạng thái được chia sẻ chỉ có thể được đặt khi khởi chạy mới.
Brent Bradburn

0

Trên cửa sổ:

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

Trên 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

lưu các dòng trên dưới dạng tệp .bat


taskkill / F / IM chrome.exe / T Hữu ích khi không khởi động lại máy tính của tôi
JCH77

0

Tùy thuộc vào tệp sẽ được đưa vào hệ thống tệp, miễn là tệp đó không phải là phần mềm độc hại thì điều đó sẽ an toàn.

Nhưng đừng lo lắng khi ghi / đọc (các) tệp vào thư mục Hệ thống tệp, vì bạn có thể thắt chặt bảo mật thư mục đó (bao gồm cả tính kế thừa) bằng cách cấp quyền truy cập thích hợp và hạn chế bảo mật. ví dụ: đọc / ghi / sửa đổi.

Theo mặc định, hệ thống tệp, bộ nhớ cục bộ và thư mục bộ nhớ nằm trên thư mục "\ Users [Người dùng hiện tại] \ AppData \ Local \ Google \ Chrome \ User Data \ Default".

Tuy nhiên, bạn có thể tùy chỉnh nó bằng cách sử dụng cờ "--user-data-dir".

Và đây là một mẫu:

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

Hy vọng điều này sẽ giúp bất cứ ai.


0

Cũng có thể nhanh chóng chạy một html cần sự cho phép hoặc bị CORS chặn Chỉ cần mở thư mục bằng VSCODE và cài đặt một tiện ích mở rộng có tên là "máy chủ trực tiếp"

Và sau đó chỉ cần nhấp vào dưới cùng có thông báo phát trực tiếp, thế là xong. Ảnh chụp màn hình

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.