ปิดใช้งานนโยบายต้นกำเนิดเดียวกันใน Chrome


1571

มีวิธีใดบ้างที่จะปิดการใช้งานนโยบายแหล่งกำเนิดเดียวกันบนเบราว์เซอร์Chromeของ Google ?


1
ดูpeter.sh/experiments/chromium-command-line-switchฉันไม่แน่ใจว่าเป็นของแท้ แต่ดูเหมือนว่าเป็นคอลเลกชันที่ผลิตโดยกระบวนการอัตโนมัติ
CSSian

1
chromium.orgเชื่อมโยงไปยังpeter.shหน้าดังนั้นจะต้องถูกต้องตามกฎหมาย
Benjineer

2
โปรดทราบว่าการปิดใช้งาน SOP แม้ว่าจะใช้เพื่อการพัฒนาเท่านั้นก็เป็นอันตราย เมื่อคุณเริ่มเบราว์เซอร์ด้วยวิธีนี้คุณอาจไม่เพียง แต่จะเปิดแอพของคุณเท่านั้น แต่ยังตรวจสอบอีเมลอ่าน SO …พิจารณาโดยใช้ทางเลือกที่ดีกว่าเช่นพร็อกซีของเว็บเพื่อแก้ไขปัญหาเหล่านี้ ตัวอย่างเช่นผ่าน proxrox: github.com/bripkens/proxrox
BenR

29
ตั้งแต่รุ่น 49 ให้ใช้ตัวเลือกนี้--disable-web-security --user-data-dir
vanduc1102

3
สำหรับทุกคนที่กำลังมองหาคำแนะนำเกี่ยวกับวิธีการทำเช่นนี้ในสภาพแวดล้อมของนักพัฒนาโดยใช้เซิร์ฟเวอร์รันรัน grunt ดูที่นี่: gist.github.com/Vp3n/5340891
GrayedFox

คำตอบ:


1037

ปิด chrome (หรือโครเมียม) แล้วเริ่มต้นใหม่ด้วย--disable-web-securityอาร์กิวเมนต์ ฉันเพิ่งทดสอบสิ่งนี้และตรวจสอบแล้วว่าฉันสามารถเข้าถึงเนื้อหาของ iframe ด้วย src = "http://google.co.th" ซึ่งฝังอยู่ในหน้าที่เสิร์ฟจาก "localhost" (ทดสอบภายใต้โครเมียม 5 / Ubuntu) สำหรับฉันคำสั่งที่แน่นอนคือ:

หมายเหตุ: ทำลาย instance ของ chrome ทั้งหมดก่อนที่จะรันคำสั่ง

chromium-browser --disable-web-security --user-data-dir="[some directory here]"

เบราว์เซอร์จะเตือนคุณว่า "คุณกำลังใช้บรรทัดคำสั่งที่ไม่รองรับ" เมื่อเปิดขึ้นครั้งแรกซึ่งคุณสามารถเพิกเฉยได้

จากแหล่งโครเมียม:

// Don't enforce the same-origin policy. (Used by people testing their sites.)
const wchar_t kDisableWebSecurity[] = L"disable-web-security";

ก่อน Chrome 48 คุณสามารถใช้:

chromium-browser --disable-web-security

115
วิธีการทำเช่นนี้ใน OS X
แลนดอนคุห์น

14
@ landon9720 ดูคำตอบโดยectype
Aneves

8
@Berty เพียงแค่ปิดโครเมี่ยมแล้วเปิดโดยไม่มีแท็ก โครเมี่ยมเท่านั้นจะอยู่ในโหมดที่ถ้ามันถูกเปิดด้วยแท็กนั้น
นิค

84
@ landon9720 ปิด Chrome, open terminal, ประเภทopen /Applications/Google\ Chrome.app --args --disable-web-security
Seanonymous

17
ใน Chrome 48 และ 49 ต้องมีการเพิ่ม--user-data-dirเช่นกัน
Jacob Lauritzen

1070

อ๋อ สำหรับ OSX ให้เปิด Terminal และเรียกใช้:

$ open -a Google\ Chrome --args --disable-web-security --user-data-dir

- จำเป็นต้องมีผู้ใช้ข้อมูลใน Chrome 49+ บน OSX

สำหรับการรันบน Linux:

$ google-chrome --disable-web-security

นอกจากนี้หากคุณพยายามเข้าถึงไฟล์ในเครื่องเพื่อการพัฒนาเช่น AJAX หรือ JSON คุณสามารถใช้การตั้งค่าสถานะนี้ได้เช่นกัน

-–allow-file-access-from-files

สำหรับ Windows ให้ไปที่พร้อมท์คำสั่งแล้วไปที่โฟลเดอร์ที่ Chrome.exe เป็นและพิมพ์

chrome.exe --disable-web-security

ซึ่งควรปิดใช้งานนโยบายกำเนิดเดียวกันและอนุญาตให้คุณเข้าถึงไฟล์ในเครื่องได้

อัปเดต:สำหรับ Chrome 22+ คุณจะได้รับข้อความแสดงข้อผิดพลาดที่แจ้งว่า:

คุณกำลังใช้การตั้งค่าสถานะบรรทัดคำสั่งที่ไม่สนับสนุน: - ปิดการใช้งานเว็บความปลอดภัย ความมั่นคงและความปลอดภัยจะประสบ

อย่างไรก็ตามคุณสามารถละเว้นข้อความนั้นขณะที่กำลังพัฒนา


7
เพิ่งลองใช้งานบนพีซี (chrome 29) และฉันยังคงได้รับ Origin อันน่ารักเหล่านี้ *** ไม่ได้รับอนุญาตจาก Access ...
Sam

23
@Sam ตรวจสอบให้แน่ใจว่าคุณได้ปิดกระบวนการโครเมี่ยมทั้งหมดแล้วลองอีกครั้ง Chrome จะออกส่วนหัวคำเตือนหากคุณทำอย่างถูกต้อง: "คุณกำลังใช้การตั้งค่าสถานะบรรทัดคำสั่งที่ไม่สนับสนุน: - ปิดการใช้งานเว็บความปลอดภัยเสถียรภาพและความปลอดภัยจะได้รับ"
Morten Haraldsen

2
มีวิธีป้องกันข้อความแสดงข้อผิดพลาดหรือไม่ ฉันกำลังใช้ธงนี้บนแผ่นผนังดิจิตอลโดยไม่ใช้แป้นพิมพ์หรือเมาส์
Bart van Heukelom

64
และเห็นได้ชัดในขณะนี้ไม่ทำงานนอกจากคุณจะให้อย่างชัดเจน--disable-web-security --user-data-dirคือ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --user-data-dir=~/ChromeUserData/OSX
WiseOldDuck

20
คุณไม่จำเป็นต้องปิดกระบวนการ Chrome ทั้งหมดก่อน open -nคุณสามารถใช้ open -n -a Google\ Chrome --args --disable-web-security --user-data-dir=/tmp/chromeทำงานเพียงแค่ สิ่งนี้จะเปิดอินสแตนซ์แอป Chrome ที่สองบน mac ของคุณและคุณสามารถใช้งานควบคู่กันได้
Pellmeister

519

สำหรับผู้ใช้ Windows:

ปัญหาเกี่ยวกับวิธีการแก้ปัญหาที่ยอมรับได้ที่นี่ในความคิดของฉันคือถ้าคุณเปิด Chrome อยู่แล้วและลองใช้งานมันจะไม่ทำงาน

อย่างไรก็ตามเมื่อทำการค้นคว้าสิ่งนี้ฉันพบโพสต์เกี่ยวกับ Super User เป็นไปได้ไหมที่จะใช้งาน Chrome ทั้งที่มีและไม่มีการรักษาความปลอดภัยเว็บพร้อมกันหรือไม่ .

โดยพื้นฐานแล้วโดยใช้คำสั่งต่อไปนี้ (หรือสร้างทางลัดด้วยและเปิด Chrome ผ่านทางนั้น)

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

คุณสามารถเปิดอินสแตนซ์ "ที่ไม่ปลอดภัย" ใหม่ของ Chrome ในเวลาเดียวกันขณะที่คุณเปิดอินสแตนซ์เบราว์เซอร์ "ปลอดภัย" อื่น ๆ ของคุณไว้และทำงานได้ตามปกติ สิ่งสำคัญ : ลบ / ล้างC:/Chrome dev sessionโฟลเดอร์ทุกครั้งเมื่อคุณเปิดหน้าต่างเนื่องจากครั้งที่สอง--disable-web-securityไม่ทำงาน ดังนั้นคุณจึงไม่สามารถบันทึกการเปลี่ยนแปลงของคุณแล้วเปิดอีกครั้งเป็นตัวอย่างที่ไม่ปลอดภัยที่สองของ Chrome --disable-web-securityด้วย


17
ขอบคุณมาก ด้วยเหตุนี้ฉันจึงสามารถเปิดหน้าเว็บเป็นแอปพลิเคชันอิสระ"C:\..\chrome.exe" --disable-web-security --user-agent="Android" --user-data-dir="C:/temp-chrome-eng" --app="file:///C:/apps/index.html"
Elvis Ciotti

2
สิ่งที่ฉันต้องการเมื่อพยายามพัฒนากับ API ในเครื่องของฉัน
Generalopinion

4
สิ่งนี้ได้ผล มันยังปล่อยให้โครเมี่ยมปกติของฉันเปิดใช้งานความปลอดภัยและทำงานได้ตามปกติ เพียงบันทึกด้านข้างเมื่อใช้งานได้ Chrome จะแจ้งให้คุณทราบว่า "ความเสถียรและความปลอดภัยจะได้รับ"
etoxin

1
ฉันจะทำสิ่งนี้ใน Mac ได้อย่างไร พยายามใช้open -a Google\ Chrome --args --disable-web-security -–allow-file-access-from-files --user-data-dir="/Users/myuser/temp/chromeData"มันแค่ทำให้หน้าต่างโครเมี่ยมที่มีอยู่ได้รับความสนใจ
user3648895

17
คำสั่งนี้ทำงานใน OSX โดยเริ่มต้นอินสแตนซ์ที่สอง: open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/chrome_dev_session" --disable-web-security (คุณอาจต้องสร้างโฟลเดอร์ temp ก่อน)
chilltemp

160

สำหรับWindows :

  1. เปิดเมนูเริ่มต้น
  2. พิมพ์windows+ Rหรือเปิด "Run"
  3. ดำเนินการคำสั่งต่อไปนี้:

    chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security

สำหรับMac :

  1. ไปที่ Terminal
  2. ดำเนินการคำสั่งต่อไปนี้:

    open /Applications/Google\ Chrome.app --args --user-data-dir="/var/tmp/Chrome dev session" --disable-web-security

เบราว์เซอร์ chrome ปิดใช้งานความปลอดภัยเว็บใหม่ควรเปิดด้วยข้อความต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่


7
@ downvoters โปรดระบุเหตุผลของการ downvote เนื่องจากไม่มีคำตอบ downvote
GSB

1
ทำงานได้ดีสำหรับฉันใน Windows 10 ไม่จำเป็นต้องปิดอินสแตนซ์อื่นของ Chrome
นิค M

นี้ทำงานบน Windows 10. ฉันเห็นมันที่อื่น Runแต่ก็กล่าวว่าจะรันบนบรรทัดคำสั่งแทนของหน้าต่าง
chidimo

มันใช้งานได้ดีฉันจะใช้สิ่งเหล่านั้นกับ IE, Edge ได้อย่างไร
Jason Brody

มันใช้งานได้ดี ฉันประสบปัญหา CORS นี้เป็นเวลาหลายชั่วโมงและพบสิ่งนี้
Achintha

78

สำหรับหน้าต่างผู้ใช้ที่มีรุ่น Chrome 60.0.3112.78 (วันแก้ปัญหาได้รับการทดสอบและทำงาน) และอย่างน้อยจนถึงวันนี้ 2019/01/19 (Ver. 71.0.3578.98) คุณไม่จำเป็นต้องปิดอินสแตนซ์ของ Chrome

  1. สร้างทางลัดบนเดสก์ท็อปของคุณ
  2. คลิกขวาที่ทางลัดแล้วคลิก Properties
  3. แก้ไขคุณสมบัติเป้าหมาย
  4. ตั้งเป็น"C: \ Program Files (x86) \ Google \ Chrome \ Application \ chrome.exe" - ปิดการใช้งานเว็บการรักษาความปลอดภัย --user-data-dir = "C: / ChromeDevSession"
  5. เริ่ม chrome และละเว้นข้อความที่ระบุว่า --disable-web-security ไม่ได้รับการสนับสนุน!

ระวังที่จะไม่ใช้เบราว์เซอร์นี้โดยเฉพาะในการเบราว์เซอร์เพราะคุณสามารถแฮ็คมันได้!


ทำงานเหมือนจับใจ ฉันไม่อยากเชื่อเลยว่า Chrome ไม่อนุญาตให้นักพัฒนาปิดการใช้งานโดยไม่ต้องเริ่มเซสชันใหม่ อย่างน้อยพวกเขาก็มีวิธี
FearlessFuture

และคุณยังสามารถใช้การดีบักโครเมียมกับซอร์สโค้ดของคุณได้หรือไม่
Righto

เพิ่งทดสอบคุณยังสามารถใช้เครื่องมือ dev ภายใต้โหมดนี้
KuN

โซลูชันนี้ยังใช้งานได้เหมือน Chrome รุ่น 71 ขอบคุณมาก!
Motoman

ทำงานร่วมกับ 72.0.3626.109 ช่วยได้มาก!
Pavel Molchanov

76

แก้ไข 3: ดูเหมือนว่าไม่มีส่วนขยายอีกต่อไป ...โดยปกติแล้วจะได้รับ CORS วันนี้ฉันตั้งค่า Chrome เวอร์ชันอื่นด้วยไดเรกทอรีแยกต่างหากหรือฉันใช้ Firefox ด้วยhttps://addons.mozilla.org/en-US/ firefox / addon / cors -where /แทน

แก้ไข 2: ฉันไม่สามารถทำงานนี้ได้อีกต่อไป

แก้ไข: ฉันพยายามใช้เพียงวันก่อนสำหรับโครงการอื่นและหยุดทำงาน การถอนการติดตั้งและการติดตั้งส่วนขยายได้รับการแก้ไขอีกครั้ง (เพื่อรีเซ็ตค่าเริ่มต้น)

คำตอบเดิม:

ฉันไม่ต้องการรีสตาร์ท Chrome และปิดการใช้งานความปลอดภัยบนเว็บของฉัน (เพราะฉันกำลังท่องเว็บในขณะที่กำลังพัฒนา) และสะดุดกับส่วนขยาย Chrome นี้

Chrome เว็บสโตร์อนุญาต - ควบคุม - อนุญาต - กำเนิด: *
(https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=th)

โดยพื้นฐานแล้วมันเป็นเพียงสวิตช์สลับเล็กน้อยเพื่อสลับการเปิดและปิดการตรวจสอบ Allow-Access-Origin-Control ทำงานได้อย่างสมบูรณ์แบบสำหรับฉันในสิ่งที่ฉันทำ


1
ฉันจะประสบความสำเร็จและรวมเข้ากับส่วนขยายของฉันได้อย่างไรเมื่อส่วนขยายของฉันต้องเข้าถึงข้ามโดเมน ฉันไม่สามารถบังคับให้ผู้ใช้ที่จะเปิดเบราว์เซอร์ wth ปิดการใช้งานเว็บการรักษาความปลอดภัย
codebased

1
ส่วนขยายนี้ใช้ไม่ได้กับไฟล์ในเครื่องโชคไม่ดี ติดกับ--disable-web-securityสวิตช์ในกรณีนั้น
bryc

2
@bryc มันไม่ได้ตั้งใจจริงๆ พิจารณาว่าคุณสามารถใช้--allow-file-access-from-filesแทนการปิดการใช้งานความปลอดภัยของเว็บทั้งหมด
เบิร์น

1
คำเตือน! ไซต์บางแห่งไม่อนุญาตให้คุณเข้าสู่ระบบโดยเปิดใช้งานส่วนขยายนี้! ตัวอย่างเช่น Firebase console
campsjos

1
“ นามสกุลไม่มีอยู่อีกต่อไป” คุณสามารถลบคำตอบของคุณหรืออย่างน้อยก็ใส่ Edit 3 ที่ด้านบนเป็นตัวหนา
Michael Freidgeim

48

ดูเหมือนว่าวิธีการแก้ปัญหาข้างต้นใช้งานไม่ได้จริง ๆ เว็บการรักษาความปลอดภัย --disableไม่สนับสนุนในรุ่นโครเมี่ยมล่าสุด

Allow-Control-Allow-Origin: * - ส่วนขยายของ Chromeแก้ไขปัญหาบางส่วน มันจะทำงานเฉพาะในกรณีที่คำขอของคุณใช้วิธีการ GET และไม่มีส่วนหัว HTTP ที่กำหนดเอง มิฉะนั้นโครเมี่ยมจะส่งคำขอ HTTP ของ OPTIONS เป็นคำขอล่วงหน้า หากเซิร์ฟเวอร์ไม่รองรับ CORS เซิร์ฟเวอร์จะตอบกลับด้วยรหัสสถานะ 404 HTTP ปลั๊กอินไม่สามารถแก้ไขรหัสสถานะ HTTP ตอบกลับได้ ดังนั้น Chrome จะปฏิเสธคำขอนี้ ไม่มีวิธีสำหรับปลั๊กอิน Chrome เพื่อแก้ไขรหัสสถานะ HTTP การตอบสนองตาม API ส่วนขยาย Chrome ปัจจุบัน และคุณไม่สามารถทำการเปลี่ยนเส้นทางได้เช่นกันสำหรับคำขอเริ่มต้น XHR

ไม่แน่ใจว่าทำไม Chrome ทำให้ชีวิตของนักพัฒนาซอฟต์แวร์ยากมาก มันบล็อกวิธีที่เป็นไปได้ทั้งหมดเพื่อปิดการใช้งานการตรวจสอบความปลอดภัย XSS แม้สำหรับการพัฒนาที่ไม่จำเป็นทั้งหมด

วันหลังจากการต่อสู้และการวิจัยหนึ่งในการแก้ปัญหาการทำงานอย่างสมบูรณ์สำหรับฉัน: ใช้corsproxy คุณมีสองตัวเลือกที่นี่: 1. ใช้ [ https://cors-anywhere.herokuapp.com/] 2. ติดตั้ง corsproxy ในกล่องท้องถิ่น: npm install -g corsproxy

[อัพเดทเมื่อวันที่ 23 มิ.ย. 2018]เมื่อเร็ว ๆ นี้ฉันกำลังพัฒนาแอพ SPA ที่ต้องใช้ corsproxy อีกครั้ง แต่ดูเหมือนว่าไม่มี corsproxy บน GitHub สามารถตอบสนองความต้องการของฉัน

  • จำเป็นต้องใช้เพื่อทำงานภายในไฟร์วอลล์เพื่อเหตุผลด้านความปลอดภัย ดังนั้นผมจึงไม่สามารถใช้https://cors-anywhere.herokuapp.com/
  • มีการสนับสนุน https เนื่องจาก chrome จะบล็อกคำขอ ajax no-https ในหน้า https
  • ฉันต้องรันบน nodejs ฉันไม่ต้องการดูแลภาษาอื่น ๆ

ดังนั้นฉันจึงตัดสินใจพัฒนา corsproxy เวอร์ชันของตัวเองกับ nodejs จริงๆแล้วมันง่ายมาก ฉันได้เผยแพร่มันเป็นส่วนสำคัญใน GitHub นี่คือส่วนสำคัญของรหัสที่มา: https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10

  • มันอยู่ในรหัส nodejs ธรรมดาโดยไม่มีการอ้างอิงเพิ่มเติมใด ๆ
  • คุณสามารถเรียกใช้ในโหมด http และ https (โดยส่งหมายเลขพอร์ต https ในบรรทัดคำสั่ง) เพื่อเรียกใช้ https คุณต้องสร้างใบรับรองและคีย์และวางไว้ในไดเรกทอรี webroot
  • มันยังทำหน้าที่เป็นไฟล์เซิร์ฟเวอร์คงที่
  • รองรับการร้องขอ OPTION ก่อนบินเช่นกัน

ในการเริ่มต้นเซิร์ฟเวอร์ CORSProxy (http พอร์ต 8080): node static_server.js 8080

เพื่อเข้าถึงพร็อกซี: http: // host: 8080 / http: //www.somesite.com


หากคุณกำลังจะไปถึงจุดนั้นคุณก็สามารถโฮสต์เว็บเซิร์ฟเวอร์ในพื้นที่หรือดึงเนื้อหาจากหน้าเว็บที่คุณต้องการจากนั้นตั้งค่าส่วนหัว CORS ให้เหมาะสม
Coburn

ฉันเคยคิดถึงเส้นทางนี้มาก่อน แต่สิ่งนี้ต้องการการเข้ารหัสบางอย่างโดยเฉพาะอย่างยิ่งในกรณีของฉันฉันต้องโทรหาบริการหลายอย่างที่มาจากโดเมนที่ต่างกัน ดังนั้นฉันต้องแมปรูปแบบ URL ที่แตกต่างกับโดเมนที่แตกต่างกัน นี่คือสิ่งที่ corsproxy ทำเพื่อเรา และมันทำงานได้อย่างสมบูรณ์แบบ
Jianwu Chen

4
ไม่เป็นความจริง .. วิธีที่กล่าวถึงในคำตอบที่ได้รับการยอมรับทำงานได้ดีสำหรับฉัน .. ตามที่ระบุไว้, Chrome 49 เป็นต้นไปสั่ง 'chrome.exe - ปิดการใช้งานเว็บการรักษาความปลอดภัย - ผู้ใช้ข้อมูล -dir' ทำงานให้ฉัน ..
Gaurang Patel

2
Chromium 53, - ปิดใช้งานการรักษาความปลอดภัยเว็บ - ผู้ใช้ - ข้อมูล -dir ไม่ทำงานสำหรับฉัน
Dark Star1

4
ใน 53+ คุณจะต้องระบุไดเรกทอรีข้อมูลผู้ใช้ที่ไม่ซ้ำกันซึ่งแตกต่างจากไดเรกทอรีปกติของคุณ สิ่งนี้จะสร้างโปรไฟล์ใหม่สำหรับสภาพแวดล้อมที่ไม่ปลอดภัย - ผู้ใช้ data-dir จำเป็นต้องตั้งค่าให้เท่ากับบางสิ่งเช่นในคำตอบ Olas ด้านบน หากคุณต้องการจริง ๆ คุณสามารถตั้งค่าให้เท่ากับโฟลเดอร์โปรไฟล์ผู้ใช้ปกติจริง ๆ ของคุณ แต่มันจะหมดกำลังใจอย่างมากเพราะจะทำให้โปรไฟล์ปกติของคุณเปิดการโจมตีโดยไม่ตั้งใจถ้าคุณเริ่มการเบราส์ปกติขณะอยู่ในโหมดนั้น
lassombra

45

สำหรับ Windows ... สร้างทางลัด Chrome บนเดสก์ท็อปของคุณ
คลิกขวา> คุณสมบัติ>
เส้นทางลัดแก้ไข "เป้าหมาย":

"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security

(เปลี่ยน 'C: .... \ chrome.exe' เป็นที่ตั้งของ chrome ของคุณ)

et voilà :)


ณ วันนี้ 08/27/2556 มันใช้ได้สำหรับฉันทำให้ฉันสามารถทำ Ajax บนโฮสต์ของฉันเอง
molokoloco

ได้รับ "คุณกำลังใช้แท็กบรรทัดคำสั่งที่ไม่รองรับ: - ปิดการใช้งาน - การรักษาความปลอดภัยเว็บ" ด้วย Canary รุ่น 53
khoailang

4
@ Khailang คุณยังคงสามารถใช้สวิตช์ได้ คำเตือนนั้นเป็นส่วนหนึ่งของสงครามความไม่มั่นคงของ Google (เป็นเรื่องดี) นอกจากนี้ในเวอร์ชัน 55+ คุณต้องใช้ --user-data-dir = <ไดเรกทอรีอื่นที่นี่> ดังนั้น Google ไม่ต้องการให้คุณผสมกฎที่ไม่ปลอดภัยกับโปรไฟล์ปกติของคุณ
lassombra

43

ลองคำสั่งนี้ใน terminal Mac-

open -n -a "Google Chrome" --args --user-data-dir=/tmp/temp_chrome_user_data_dir http://localhost:8100/ --disable-web-security 

มันเปิดอีกตัวอย่างหนึ่งของโครเมี่ยมที่ปิดใช้งานความปลอดภัยและไม่มีปัญหา CORS อีกต่อไป นอกจากนี้คุณไม่จำเป็นต้องปิดอินสแตนซ์ของ Chrome อีกต่อไป เปลี่ยน localhost URL เป็น URL ของคุณ


คำตอบของบรรทัดคำสั่งส่วนใหญ่ไม่ได้ปรับปรุงสำหรับฉันใน macOS อย่างไรก็ตามโพสต์นี้alfilatov.com/posts/run-chrome-without-corsและบรรทัดคำสั่งที่เปิดใช้งานได้สำหรับฉัน มันเป็นเช่นเดียวกับคำสั่งข้างต้นดังนั้นการลงคะแนนขึ้น
Max MacLeod

40

ฉันพบวิธีที่ดีที่สุดในการทำเช่นนี้คือทำซ้ำทางลัด Chrome หรือ Chrome Canary บนเดสก์ท็อป windows ของคุณ เปลี่ยนชื่อทางลัดนี้เป็น "NO CORS" จากนั้นแก้ไขคุณสมบัติของทางลัดนั้น

ในเป้าหมายเพิ่ม--disable-web-security --user-data-dir="D:/Chrome"ไปยังจุดสิ้นสุดของเส้นทางเป้าหมาย

เป้าหมายของคุณควรมีลักษณะเช่นนี้:

อัปเดต:เพิ่มสถานะใหม่

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="D:/Chrome"

ป้อนคำอธิบายรูปภาพที่นี่


นี่เพิ่งให้ฉัน 404 ตอนนี้แทนที่จะเป็นข้อผิดพลาดก่อนการบิน
L1ghtk3ira

ข้อผิดพลาด 404 อาจเป็นข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์ไม่ใช่ข้อผิดพลาดของ Google Chrome
etoxin

2
@etoxin คำตอบนี้ใช้ไม่ได้กับ chrome รุ่นล่าสุดอีกต่อไป คุณต้องเพิ่ม --disable-web-security --user-data-dir = "D: / Chrome"
Vignesh S

29

ใช้รุ่นล่าสุดของ Chrome ปัจจุบัน (83.0.4103.61 (Official Build) (64 บิต)) วิธีเดียวที่จะทำให้มันทำงานในการทดสอบของฉันคือการเริ่ม chrome โดยใช้ค่าสถานะด้านล่าง (เปลี่ยนD: \ temp ตามที่คุณต้องการ) . วิธีการแก้ปัญหานี้จะเริ่มต้นด้วยโครเมียมเป็นกล่องทดลองสำหรับการทดสอบและจะไม่ส่งผลกระทบต่อโปรไฟล์โครเมี่ยมหลัก:

- ปิดการใช้งานเว็บไซต์แยกการทดลอง - ปิดการใช้งานเว็บการรักษาความปลอดภัย - ผู้ใช้ข้อมูล -dir = "D: \ temp"

ใน windows คลิกปุ่มเริ่มแล้วคัดลอกวางด้านล่าง:

chrome.exe  --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"

5
นี่เป็นทางออกเดียวสำหรับฉัน ฉันเรียกใช้งานนี้chrome.exe --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"บนrunหน้าต่างบน windows 10 ขอบคุณมาก
Sampath

ผมดึง ARGHGHGH - ดูเหมือนจะไม่ทำงานอีกต่อไปแล้ว
Daniel Sokolowski

1
การเพิ่ม - ปิดการใช้งานเว็บไซต์แยกการทดลองจริงๆช่วยฉันในกรณีของฉัน Chrome v 75.0, Selenium Web Driver, Java ขอบคุณ!
Nikolay Chernov

หากคุณต้องการทดสอบเว็บไซต์ที่มี cors ให้ใช้ Safari ซึ่งคุณต้องเปิดและปิดตัวเลือกแทนที่จะเปิดใช้อินสแตนซ์อื่นของเบราว์เซอร์หรือฆ่าอินสแตนซ์: [ stackoverflow.com/a/12158217/922457 ]
Edenshaw

1
ทำงานให้ฉันบน windows! Thankies!
Jánosi-Borsos Róbert

20

คุณสามารถใช้ปลั๊กอินโครเมี่ยมนี้ที่ชื่อว่า "Allow-Control-Allow-Origin: *" ... ทำให้มันง่ายและใช้งานได้ดีมาก ตรวจสอบที่นี่: *

Chrome ส่วนขยาย


4
มันตั้งเว็บไซต์ "evil.com" เป็นจุดเริ่มต้นดูน่าสงสัย
Suprido

5
ไม่สามารถใช้งานได้อีกต่อไปตามวันที่ของความคิดเห็นนี้ อยากจะแนะนำเพียงแค่ใช้เส้นทางธง
NJDawson

19

สำหรับ Selenium Webdriver คุณสามารถให้ซีลีเนียมเริ่มต้น Chrome ด้วยอาร์กิวเมนต์ที่เหมาะสม (หรือ "สวิตช์") ในกรณีนี้

 @driver = Selenium::WebDriver.for(:Chrome, { 
       :detach => false,
       :switches => ["--disable-web-security"]
    })

1
นั่นคือสองขีดนำหน้าสำหรับการปิดใช้งานการรักษาความปลอดภัยเว็บ เบราว์เซอร์ของฉันมันทำให้พวกมันดูเหมือนเส้นประหนึ่ง looong
mikelupo

ฉันเขียนโพสต์เล็ก ๆ เกี่ยวกับโครเมี่ยมโดยไม่มีคอร์
Alex Filatov

14

หากคุณใช้ Google Chrome บน Linux คำสั่งต่อไปนี้ใช้งานได้

google-chrome  --disable-web-security

13

ปลั๊กอิน Chrome นี้ใช้งานได้สำหรับฉัน: Allow-Control-Allow-Origin: * - Chrome Web Store


5
ปลั๊กอินนี้แตกในเบราว์เซอร์ของฉันและเริ่มทำลายทุกสิ่ง XHR ใช้ด้วยความระมัดระวัง
etoxin

1
ปลั๊กอินนี้ถูกลบออกจาก chrome store
Yipeekiyay

13

อย่าทำอย่างนี้! คุณเปิดบัญชีของคุณเพื่อโจมตี เมื่อคุณทำเช่นนี้ไซต์บุคคลที่สามใด ๆ สามารถเริ่มต้นการร้องขอไปยังเว็บไซต์อื่น ๆ ไซต์ที่คุณเข้าสู่ระบบ

แทนที่จะเรียกใช้เซิร์ฟเวอร์ท้องถิ่น ง่ายเหมือนการเปิดเชลล์ / เทอร์มินัล / commandline แล้วพิมพ์

cd path/to/files
python -m SimpleHTTPServer

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

http://localhost:8000

หากคุณพบว่ามันช้าเกินไปให้พิจารณาโซลูชันนี้

ปรับปรุง

ผู้คน downvoting คำตอบนี้ควรไปที่นี่และdownvote คนนี้ก็เพื่อให้สอดคล้อง ไม่มีความคิดว่าทำไมคำตอบของฉันคือ downvoted มากและคำตอบเดียวกันซ้ำนี่คือด้านบนลงมติคำตอบ

คุณกำลังเปิดตัวเองเพื่อการโจมตี สคริปต์บุคคลที่สามทุกอันที่คุณรวมไว้ในไซต์ของคุณจากระยะไกลหรือในพื้นที่เช่นผ่าน npm สามารถอัปโหลดข้อมูลของคุณหรือขโมยข้อมูลประจำตัวของคุณ คุณกำลังทำสิ่งที่คุณไม่จำเป็นต้องทำ ทางออกที่แนะนำนั้นไม่ยากใช้เวลา 30 วินาทีอย่าปล่อยให้คุณเปิดการโจมตี ทำไมคุณถึงเลือกที่จะทำให้ตัวเองอ่อนแอเมื่อสิ่งที่ดีกว่าที่จะทำนั้นง่ายมาก?

การบอกคนอื่นให้ปิดการใช้งานระบบรักษาความปลอดภัยก็เหมือนกับการบอกให้เพื่อนของคุณออกจากประตูหน้าของพวกเขาเพื่อปลดล็อคและ / หรือกุญแจใต้พรม แน่นอนว่าอัตราต่อรองอาจจะต่ำ แต่ถ้าพวกเขาถูกขโมยโดยไม่ต้องพิสูจน์รายการบังคับพวกเขาอาจมีการเก็บรวบรวมประกันยาก ในทำนองเดียวกันถ้าคุณรักษาความปลอดภัยปิดการใช้งานที่คุณกำลังทำเพียงแค่ว่าการปิดใช้งาน การรักษาความปลอดภัย คุณไม่สามารถทำสิ่งนี้ได้เมื่อคุณสามารถแก้ไขปัญหาได้โดยไม่ต้องปิดระบบความปลอดภัย ฉันจะแปลกใจถ้าคุณไม่สามารถถูกไล่ออกจาก บริษัท บางแห่งเพื่อปิดการใช้งานความปลอดภัย


9
สิ่งนี้จะไม่เปิด "เครื่องของคุณ" เพื่อโจมตี โค้ดจาวาสคริปต์ที่เป็นอันตรายจะไม่สามารถทำอะไรได้มากมายบนเครื่องไคลเอ็นต์ อย่างไรก็ตามคุณจะอนุญาตให้ใช้รหัส JavaScript ที่เป็นอันตรายเพื่อจัดการบัญชีของคุณบนเว็บไซต์อื่น ๆ (facebook / administrations / banks / ... ) แน่นอนว่านี่ไม่ได้อันตรายน้อยกว่า แต่มันแตกต่างอย่างสิ้นเชิง
สลัว

หรือห้องสมุด 3rdparty ใด ๆ ที่คุณกำลังรวมทั้งในเพจท้องถิ่นของคุณเพื่ออัปโหลดไฟล์จากฮาร์ดดิสก์ไปยังเซิร์ฟเวอร์ระยะไกล
gman


2
ถึงกระนั้นผู้ใช้อาจต้องทำเช่นนี้ ปัญหาไม่ได้ทำงานกับเซิร์ฟเวอร์ ปัญหาคือการทดสอบ CORS ก่อนที่คุณจะวางมันบนเซิร์ฟเวอร์การยอมรับ / การผลิตของคุณซึ่งไม่จำเป็นต้องทำการเปลี่ยนแปลงนี้ การแก้ไขไฟล์โฮสต์จะไม่ทำงานเช่นกัน
Jeff Huijsmans

คุณไม่สามารถทดสอบ CORS หากไม่มีเซิร์ฟเวอร์เพราะ CORS เป็นเทคโนโลยีด้านเซิร์ฟเวอร์ ในการทดสอบ CORS คุณต้องตั้งค่าเซิร์ฟเวอร์เพื่อส่งส่วนหัว CORS มี 2 ​​สิ่งที่ต้องทดสอบ (1) เซิร์ฟเวอร์ส่งส่วนหัว (2) ถ้าเซิร์ฟเวอร์ส่งส่วนหัวคุณสามารถใช้ทรัพยากรในเบราว์เซอร์ได้ ทั้ง (1) และ (2) ต้องการเซิร์ฟเวอร์ หากคุณต้องการทำเพียง 2 คุณสามารถใช้เซิร์ฟเวอร์นี้แต่คุณยังต้องทดสอบ (2) กับเซิร์ฟเวอร์ใดก็ตามที่จะไปยังเซิร์ฟเวอร์ไซต์ที่ใช้งานจริงของคุณ
gman

11

คุณสามารถใช้ส่วนขยายของโครเมี่ยมนี้อนุญาต - ควบคุม - อนุญาต - กำเนิด

เพียงคลิกที่ไอคอนของส่วนขยายเพื่อเปิดหรือปิดการแชร์ข้ามทรัพยากรตามที่คุณต้องการ


ลิงค์ตาย
Vitaly Zdanevich

มันไม่ใช่. และใช่มันทำงานอยู่ แต่เรามาที่นี่เพราะตอนนี้เรามีคำสั่งให้ใช้คำสั่งข้างต้น!
Jánosi-Borsos Róbert

@ Jánosi-BorsosRóbertที่รวมอยู่ใน "เรา" ของคุณและความรู้เกี่ยวกับความหมายของคำสั่งจะนำคุณมาที่นี่ได้อย่างไร FYI: คำสั่งของคุณไม่แน่ชัดและฉันไม่เชื่อฟัง;)
Superole

10

สำหรับผู้ใช้ MAC เท่านั้น

open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security

วิธีเปลี่ยนการเปลี่ยนแปลงนี้ @saurab
Mohasin Ali

@MohasinAli ปิดหน้าต่าง chrome ทั้งหมดและเรียกใช้เหมือนปกติ มีผลกับอินสแตนซ์ที่คุณใช้กับอาร์กิวเมนต์นี้เท่านั้น หากคุณเรียกใช้อีกครั้งโดยไม่มีข้อโต้แย้งการเปลี่ยนแปลงนี้จะไม่ถูกนำมาใช้
Jeff Huijsmans


7

ใน Windows 10 ข้อมูลต่อไปนี้จะใช้งานได้

<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt

ฉันประหลาดใจที่คำตอบของคุณถูกลดระดับลง มันทำงานได้ดีมากสำหรับฉันกับไฟล์ในเครื่องที่ใช้ Chrome เวอร์ชันล่าสุด
Waruyama

@CHANist: นั่นอาจเป็นสาเหตุที่ OP กล่าวว่า "บน Windows 10 " ...
Lawrence Dol

7

การติดตามคำตอบของ Ola Karlsson เป็นวิธีที่ดีที่สุดในการเปิด Chrome ที่ไม่ปลอดภัยในเซสชันอื่น วิธีนี้คุณไม่ต้องกังวลกับการปิดแท็บที่เปิดอยู่ทั้งหมดและยังสามารถท่องเว็บอย่างปลอดภัยด้วยเซสชัน Chrome ดั้งเดิม

แบตช์ไฟล์เหล่านี้ควรจะทำงานให้คุณบน Windows

วางไว้ในไฟล์ Chrome_CORS.batเพื่อให้ใช้งานง่าย

start "" "c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="c:/_chrome_dev" --disable-web-security

หนึ่งนี้สำหรับChrome Canary Canary_CORS.bat

start "" "c:\Users\%USERNAME%\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --user-data-dir="c:/_canary_dev" --disable-web-security

นี่คือการใช้แบตช์ไฟล์อย่างไม่มีจุดหมาย ทางลัดคงจะดีกว่านี้มาก เพียงใส่ทุกอย่างหลังจากราคาคู่แรกลงในเป้าหมายทางลัด
lassombra

มันไม่สำคัญหรอก แต่ในชุดคุณสามารถทำสิ่งต่าง ๆ เช่นการลบข้อมูลผู้ใช้ -dir หลังจากที่คุณปิดเบราว์เซอร์ตัวอย่างเช่น
guya

จริงการเพิ่มพฤติกรรมนอกเหนือจากการเปิดตัวเพียงอย่างเดียวจะเป็นประโยชน์ แต่สำหรับคนส่วนใหญ่ที่ต้องการสิ่งนี้ในระยะเวลาการมีไดเรกทอรีผู้ใช้แบบถาวรจะมีประโยชน์ (ตัวอย่างเช่นส่วนขยายที่ติดตั้งไว้)
lassombra

7

บน Linux- Ubuntu เพื่อเรียกใช้เซสชันปกติพร้อมกันและเซสชันที่ไม่ปลอดภัยให้รันคำสั่งต่อไปนี้:

google-chrome  --user-data-dir=/tmp --disable-web-security

6

สำหรับผู้ใช้ mac:

open -a "Google Chrome" --args --disable-web-security --user-data-dir

และก่อน Chrome 48 คุณสามารถใช้:

open -a "Google Chrome" --args --disable-web-security

ขอบคุณ ใช้งานได้กับ Chrome 73 ล่าสุดซึ่งรวมถึงนโยบายความปลอดภัย CORB ใหม่
StuyvesantBlue

6

มีนามสกุล Chrome เรียกว่าสลับเป็น

คลิกที่นี่เพื่อเข้าใช้งานได้และเพิ่มเข้าไปใน Chrome

หลังจากเพิ่มมันสลับไปยังบนตำแหน่งที่จะอนุญาตการร้องขอข้ามโดเมน


ลิงค์ตาย
Vitaly Zdanevich

6

สำหรับ OSX ให้รันคำสั่งต่อไปนี้จากเทอร์มินัล:

open -na Google\ Chrome --args --disable-web-security --user-data-dir=$HOME/profile-folder-name

นี่จะเป็นการเริ่มต้นอินสแตนซ์ใหม่ของ Google Chrome พร้อมคำเตือนด้านบน


5

นี่เป็นเป้าหมายที่เคลื่อนไหวตลอดไป .... วันนี้ฉันต้องการเพิ่มธงอื่นเพื่อให้มันทำงาน: --disable-site-isolation-trials

OS X: open /Applications/Google\ Chrome.app --args --user-data-dir="/var/tmp/Chrome_dev_2" --disable-web-security --disable-site-isolation-trials


3

สำหรับ Windows:

(ใช้windows 8.1, chrome 44.0 )

ก่อนอื่นให้ปิด google chrome

จากนั้นให้เปิดพรอมต์คำสั่งแล้วไปที่โฟลเดอร์ที่ 'chrome.exe' อยู่

( for me: 'chrome.exe' is here "C:\Program Files (x86)\Google\Chrome\Application".

ดังนั้นผมจึงประเภท: cd C:\Program Files (x86)\Google\Chrome\Application)

ตอนนี้พิมพ์: chrome.exe --disable-web-security

หน้าต่างใหม่ของ Chrome จะเปิดขึ้น


3

ใช้คำสั่งด้านล่างใน Ubuntu เพื่อเริ่ม chrome (ปิดใช้งานนโยบายกำเนิดเดียวกันและเปิด chrome ในโหมดแยกออก):

nohup google-chrome --disable-web-security --user-data-dir='/tmp' &

3

บน Windows:

1) สร้างทางลัดใหม่:

สร้างทางลัดใหม่

2) วางเส้นทางต่อไปนี้:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="c:\temp\chrome"

วางเส้นทาง

3) ในประเภทหน้าถัดไป:

Unsafe Chrome.exe

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้คุณมีโครเมียมที่ไม่ปลอดภัยบนเดสก์ท็อปเพื่อใช้สำหรับการดีบักแอปพลิเคชัน CORS หวังว่าคำตอบแบบกราฟิกนี้ช่วยคนบางคน!


1

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

chrome://net-internals/#hsts

1
กรุณาอธิบาย. Input a domain name to delete its dynamic domain security policies (HSTS and Expect-CT). (You cannot delete preloaded entries.):ที่หน้านี้ที่ผมเห็นด้านล่าง
Vitaly Zdanevich

มีใครแก้ปัญหานี้ได้บ้าง
Yipeekiyay

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