จะเปิด html โดยใช้ Chrome ในโหมด“ --allow-file-access-from-files” ได้อย่างไร


124

ฉันมีสถานการณ์เดียวกันกับที่นี่

และเพื่อแก้ปัญหานี้ฉันต้องเปิดไฟล์ html โดยใช้ Chrome ที่โหมด "--allow-file-access-from-files" ฉันลองทำตามขั้นตอนต่อไปหลายครั้ง แต่ก็ไม่ได้ผล

  1. เริ่ม cmd ภายใต้ windows 7
  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/…
Robert Parcus

5
@RobertParcus ปลั๊กอินนั้นดูเหมือนจะไม่ทำงานหากคุณใช้fileโปรโตคอล
Andrew Thaddeus Martin

คำตอบ:


81

ค้นหาเส้นทางของไฟล์ปฏิบัติการ Chrome ของคุณจากนั้นบน cmd ของคุณลอง:

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

แหล่ง

แก้ไข: ตามที่ฉันเห็นในคำถามของคุณอย่าลืมว่า Windows นั้นคล้ายกับ Unix เล็กน้อยดังนั้นเมื่อคุณพิมพ์ "chrome ... " cmd จะค้นหา Chrome ใน PATH แต่โดยทั่วไปโฟลเดอร์ Chrome จะไม่มี ไม่อยู่บนเส้นทาง นอกจากนี้คุณไม่ได้ระบุส่วนขยายสำหรับไฟล์ปฏิบัติการของคุณ ... ดังนั้นหากคุณย้ายไปที่โฟลเดอร์ของ Chrome คำสั่งนี้ก็น่าจะใช้ได้เช่นกัน:

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

2
ฉันรีสตาร์ทคอมพิวเตอร์และทำเช่นเดียวกับที่คุณพูดและดูเหมือนว่าจะดี ขอบคุณ.
AmyWuGo

2
ตามความคิดเห็นของ Philippe คุณต้องออกจากกระบวนการ Chrome ทั้งหมดและเริ่มต้นใหม่ด้วยตัวเลือกบรรทัดคำสั่ง (Windows 7)
โยโย่

2
หากไม่ทำงานหลังจากรีสตาร์ท Chrome ให้ตรวจสอบกระบวนการทำงานในพื้นหลัง (ไอคอนโครเมียมใกล้นาฬิกา) คุณอาจเปิดตัวเลือก "ให้ Google Chrome ทำงานในพื้นหลัง"
Alex Klaus

1
@Abdul ใช่แน่นอนเว้นแต่คุณจะสร้างทางลัดด้วยค่าสถานะและเริ่ม Chrome จากมัน
Mohamed Amine

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

114

ฟันธงว่าอันตราย !! เปิดระบบไฟล์ของคุณให้สามารถเข้าถึงได้ เอกสารที่มาจากทุกที่ในเครื่องหรือเว็บโดยค่าเริ่มต้นไม่ควรมีสิทธิ์เข้าถึงไฟล์ในเครื่อง: /// ทรัพยากร

ทางออกที่ดีกว่ามากคือการเรียกใช้เซิร์ฟเวอร์ 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 แนะนำคุณสามารถติดตั้ง Python ภายใต้ windows และทำตามคำแนะนำด้านล่าง

- สำหรับ Linux -

เนื่องจากโดยปกติ Python จะมีอยู่ในการกระจาย linux ส่วนใหญ่เพียงแค่เรียกใช้python -m SimpleHTTPServerในไดเรกทอรีโครงการของคุณและคุณสามารถโหลดหน้าเว็บของคุณได้http://localhost:8000

ในหลาม 3 SimpleHTTPServerโมดูลได้รับการผสานเข้าดังนั้นคำสั่งใหม่เป็นhttp.serverpython3 -m http.server

ง่ายและไม่มีความเสี่ยงด้านความปลอดภัยที่จะปล่อยให้เบราว์เซอร์ของคุณเปิดช่องโหว่โดยไม่ได้ตั้งใจ


9
นี่ควรเป็นคำตอบที่ได้รับการยอมรับ! ฉันมาที่นี่เพื่อค้นหาวิธีที่ถูกต้องในการใช้--allow-file-access-to-filesตัวเลือกบรรทัดคำสั่งกับ Chrome (และ Opera) คำตอบของคุณทำให้ฉันรู้ว่าคำถามของฉันผิดด้วยเหตุผลสำคัญ ยิ่งไปกว่านั้นคุณได้เขียนโซลูชันของคุณด้วยวิธีที่กระชับและง่ายต่อการปฏิบัติตาม ขอบคุณพันล้าน! ฉันยังอยากจะแนะนำ @orszaczky ที่คุณเขียนเป็นหลักคำตอบที่เหมือนกันสำหรับคำถาม SO ที่ถูกเชื่อมโยงในคำถามเดิมนี้เช่นนี้คำถามอื่นฉันสามารถเขียนมันได้ แต่คุณสมควรได้รับเครดิต
Andrew Willems

24
นี่อาจเป็นข้อเสนอแนะที่ดี แต่ในความเป็นจริงแล้วไม่ใช่คำตอบสำหรับคำถาม คำถามไม่ใช่ "วิธีใดเป็นวิธีที่ดีที่สุดในการเข้าถึงไฟล์ในเครื่องใน chrome" โดยเฉพาะ "ฉันจะเปิดโดยใช้ค่าสถานะนี้ได้อย่างไร" หากคุณตระหนักถึงความเสี่ยงและไม่เปิดสิ่งที่คุณไม่ได้สร้างขึ้นมาหรือหากคุณไม่ได้ออนไลน์ .. ก็ทำได้ดีมาก มีเหตุผลว่าทำไมถึงมีประโยชน์ .. ซึ่งฉันจะถือว่าเป็นเหตุผลที่ google ทำให้มันเป็นตัวเลือก
TinMonkey

2
เป็นเรื่องตลกที่คุณจะแนะนำให้ผู้อื่นติดตั้งโหนดแทนที่จะเป็น python บน Windows เพียงเพื่อโฮสต์เซิร์ฟเวอร์ธรรมดานี้ ราวกับว่าตัวเลือก python จะไม่เหมาะสำหรับ Windows (ซึ่งไม่ใช่) เมื่อสิ่งที่คุณมีคือค้อนทุกอย่างดูเหมือนตะปู?
prusswan

16
คำตอบนี้เป็นเพียงการแพร่กระจายความกลัว --allow-file-access-from-filesตัวเลือกที่ช่วยให้file://การเข้าถึงหน้าเว็บอื่น ๆfile://ทรัพยากรที่ทั้งหมด มันไม่ได้เปิดระบบไฟล์ของคุณไว้
ฟรี

3
มันไม่ใช่คำตอบสำหรับคำถาม บางคนอาจต้องการสิ่งนี้จริงๆเช่นฉันกำลังใช้ไลบรารีแอพ webkit พิเศษ Coherent UIGT เมื่อฉันกำลังทดสอบฉันต้องการการเข้าถึงไฟล์ในเครื่อง BTW, Firefox รองรับไฟล์: // โหลดไฟล์ในเครื่องอื่น
Eric

29

คุณอาจต้องการลองใช้Web Server สำหรับ Chromeซึ่งให้บริการหน้าเว็บจากโฟลเดอร์ในเครื่องโดยใช้ HTTP ใช้งานง่ายและหลีกเลี่ยงแฟล็กซึ่งตามที่มีคนกล่าวถึงข้างต้นอาจทำให้ระบบไฟล์ของคุณมีช่องโหว่

ภาพหน้าจอของ Web Server สำหรับ Chrome


3
สุกใส นี่คือโซลูชันที่เป็นมิตรกับผู้ใช้ที่ฉันกำลังมองหาขอบคุณ
jay-danger

1
มันเยี่ยมมาก สิ่งที่จำเป็นสำหรับปัญหานี้
อ. เดนิส

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: // version ในแถบที่อยู่ Chrome ของคุณและจะบอกคุณว่าคุณควรใช้การเรียกใช้" บรรทัดคำสั่ง "ใด" นั่นคือประเด็น
JCH77

15

อย่าทำแบบนี้! คุณกำลังเปิดเครื่องของคุณกับการโจมตี เรียกใช้เซิร์ฟเวอร์ภายในแทน ง่ายพอ ๆ กับการเปิด shell / terminal / commandline แล้วพิมพ์

cd path/to/files
python -m SimpleHTTPServer

จากนั้นชี้เบราว์เซอร์ของคุณไปที่

http://localhost:8000

หากคุณพบว่ามันช้าเกินไปให้ลองใช้วิธีนี้


+1 ลิงก์ไปที่stackoverflow.com/questions/12905426/…
ESRogs

1
การโจมตีเหล่านั้นมีไว้เพื่อ--disable-web-securityไม่--allow-file-access-from-filesให้เกิดผล - เพื่อให้ผู้คนรู้ มีความเสี่ยง แต่ก็ไม่ใกล้ขนาดนั้น

คุณได้อ่านบทความหรือไม่? อย่างน้อยหนึ่งของการโจมตีเป็นไปได้มีเพียง--allow-file-access-from-filesที่ ทำไมต้องรับความเสี่ยงในเมื่อวิธีที่ไม่มีความเสี่ยงนั้นง่ายมาก?
gman

@JoeRocc ขอบคุณสำหรับการโหวตและขอบคุณสำหรับการช่วยเหลือผู้คนในการรักษาความปลอดภัยเครื่องของพวกเขา คุณคือฮีโร่ตัวจริง
gman

1
เช่นเดียวกับรูปแบบอื่น ๆ ทั้งหมดนี้ไม่ใช่คำตอบที่ถูกต้องหรือแม้แต่ปัญหา มันผิดในสิ่งที่คุณแนะนำ การเปิดตัวด้วยตัวเลือกนั้นไม่ได้เปิดเครื่องของคุณเพื่อโจมตี ในทางที่ควบคุมได้ 'จะปิดใช้งานการใช้ตัวหนีบความปลอดภัยแบบสายตาสั้น / ขี้เกียจที่กว้างเกินไป ไฟล์ HTML หรือ SVG ในเครื่องควรมีสิทธิ์เข้าถึงเนื้อหาของไฟล์: โปรโตคอลเช่นไฟล์. 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) เห็นได้ชัดว่านี่เป็นสถานะที่ใช้ร่วมกันซึ่งสามารถตั้งค่าได้เมื่อเปิดตัวใหม่เท่านั้น
Brent Bradburn


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

ขึ้นอยู่กับไฟล์ที่จะนำไปไว้ในระบบไฟล์ตราบใดที่ไฟล์นั้นไม่ใช่มัลแวร์ไฟล์นั้นก็จะปลอดภัย

แต่อย่ากังวลที่จะเขียน / อ่านไฟล์ไปยังไดเร็กทอรี File System เพราะคุณสามารถกระชับความปลอดภัยของไดเร็กทอรีนั้นได้ (รวมถึงการสืบทอด) โดยให้สิทธิ์การเข้าถึงที่เหมาะสมและข้อ จำกัด ด้านความปลอดภัย เช่น: อ่าน / เขียน / แก้ไข

โดยค่าเริ่มต้นระบบไฟล์ที่เก็บข้อมูลในเครื่องและไดเรกทอรีที่เก็บข้อมูลจะอยู่ในไดเรกทอรี "\ 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

มีความรวดเร็วในการเรียกใช้ html ซึ่งต้องได้รับอนุญาตหรือถูกบล็อกโดย CORS เพียงแค่เปิดโฟลเดอร์โดยใช้ VSCODE และติดตั้งส่วนขยายที่เรียกว่า "เซิร์ฟเวอร์สด"

จากนั้นคลิกที่ด้านล่างซึ่งระบุว่าถ่ายทอดสดแค่นั้นเอง ภาพหน้าจอ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.