Câu hỏi Vô hiệu hóa chính sách gốc giống nhau trong Chrome


Có cách nào để vô hiệu hóa Chính sách cùng nguồn gốc trên Google Chrome trình duyệt?

Điều này là đúng cho phát triển, không sử dụng sản xuất.


1085
2018-06-23 15:00


gốc


Xem thêm peter.sh/experiments/chromium-command-line-switches, Tôi không chắc chắn về tính xác thực của nó nhưng nó dường như là một bộ sưu tập được tạo ra bởi một quá trình tự động - Kevin M
chromium.org liên kết đến peter.sh trang, vì vậy phải khá hợp pháp. - benjineer
Lưu ý rằng việc vô hiệu hóa SOP, ngay cả khi chỉ được sử dụng để phát triển, là nguy hiểm. Khi bạn khởi động trình duyệt theo cách này, có thể bạn sẽ không chỉ mở ứng dụng của mình mà còn kiểm tra thư, đọc SO… Xem xét sử dụng các lựa chọn thay thế tốt hơn, ví dụ: web proxy, để giải quyết những vấn đề này. Ví dụ: thông qua proxrox: github.com/bripkens/proxrox - BenR
Kể từ phiên bản 49, hãy sử dụng tùy chọn này --disable-web-security --user-data-dir - vanduc1102
Đối với bất cứ ai tìm kiếm lời khuyên về cách làm điều này trong một môi trường phát triển bằng cách sử dụng một máy chủ chạy grunt thấy điều này: gist.github.com/Vp3n/5340891 - GrayedFox


Các câu trả lời:


Đóng chrome (hoặc chromium) và khởi động lại bằng --disable-web-security tranh luận. Tôi vừa kiểm tra điều này và xác minh rằng tôi có thể truy cập nội dung của iframe bằng src = "http://google.com" được nhúng trong trang được phân phát từ "localhost" (được thử nghiệm dưới chromium 5 / ubuntu). Đối với tôi, lệnh chính xác là:

Lưu ý: Giết tất cả các phiên bản chrome trước khi chạy lệnh

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

Trình duyệt sẽ cảnh báo bạn rằng "bạn đang sử dụng dòng lệnh không được hỗ trợ" khi lần đầu tiên mở ra, bạn có thể bỏ qua.

Từ nguồn crom:

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

Trước Chrome 48, bạn chỉ có thể sử dụng:

chromium-browser --disable-web-security

788
2017-07-05 07:20



Làm thế nào để làm điều này trên OS X? - Landon Kuhn
@ landon9720 xem câu trả lời của ectype. - ANeves
@Berty Chỉ cần đóng chrome và mở nó mà không có thẻ. Chrome sẽ chỉ ở chế độ đó nếu nó đã được mở bằng thẻ đó - Nick Miceli
@ landon9720 Đóng Chrome, thiết bị đầu cuối mở, loại open /Applications/Google\ Chrome.app --args --disable-web-security - Seanonymous
Trong Chrome 48 và 49, bạn phải thêm --user-data-dir cũng. - Jacob Lauritzen


Vâng. Đối với OSX, mở Terminal và chạy:

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

--user-data-dir được yêu cầu trên Chrome 49+ trên OSX

Đối với Linux chạy:

$ google-chrome --disable-web-security

Ngoài ra nếu bạn đang cố truy cập các tệp cục bộ cho các mục đích của dev như AJAX hoặc JSON, bạn cũng có thể sử dụng cờ này.

-–allow-file-access-from-files

Đối với Windows, hãy vào dấu nhắc lệnh và vào thư mục chứa Chrome.exe và nhập

chrome.exe --disable-web-security

Điều đó sẽ vô hiệu hóa chính sách gốc giống nhau và cho phép bạn truy cập các tệp cục bộ.

Cập nhật: Đối với Chrome 22+, bạn sẽ thấy thông báo lỗi cho biết:

Bạn đang sử dụng cờ dòng lệnh không được hỗ trợ: --disable-web-security. Tính ổn định và bảo mật sẽ bị ảnh hưởng.

Tuy nhiên bạn chỉ có thể bỏ qua thông điệp đó trong khi phát triển.


897
2018-05-21 18:36



Chỉ cần cố gắng này trên máy tính (chrome 29) và tôi vẫn nhận được nguồn gốc đáng yêu *** không được phép truy cập ... - Sam
@Sam Đảm bảo bạn đã đóng tất cả các quy trình chrome, sau đó thử lại. Chrome sẽ phát hành tiêu đề cảnh báo nếu bạn đã thực hiện đúng: "Bạn đang sử dụng cờ dòng lệnh không được hỗ trợ: --disable-web-security. Tính ổn định và bảo mật sẽ bị" - Morten Haraldsen
Có cách nào để ngăn chặn thông báo lỗi xuất hiện không? Tôi đang sử dụng lá cờ này trên bảng tường kỹ thuật số mà không cần bàn phím hoặc chuột. - Bart van Heukelom
Và dường như bây giờ --disable-web-security không hoạt động trừ khi bạn cũng đưa ra một cách rõ ràng --user-data-dir. tức là OSX /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --user-data-dir=~/ChromeUserData/. - WiseOldDuck
Bạn không phải đóng tất cả các quy trình Chrome trước. Bạn có thể dùng open -n. Chỉ cần chạy open -n -a Google\ Chrome --args --disable-web-security --user-data-dir=/tmp/chrome. Thao tác này sẽ mở một phiên bản ứng dụng Chrome thứ hai trên máy Mac của bạn và bạn có thể sử dụng chúng cạnh nhau. - Pelle ten Cate


Đối với người dùng Windows:

Vấn đề với giải pháp được chấp nhận ở đây, theo ý kiến ​​của tôi là nếu bạn đã có Chrome mở và cố gắng chạy nó sẽ không hoạt động.

Tuy nhiên, khi nghiên cứu điều này, tôi đã xem một bài đăng trên Super User, Có thể chạy Chrome có và không có bảo mật web cùng một lúc không?.

Về cơ bản, bằng cách chạy lệnh sau (hoặc tạo một lối tắt với nó và mở Chrome thông qua đó)

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

bạn có thể mở một phiên bản "không an toàn" mới của Chrome cùng một lúc khi bạn giữ các phiên bản trình duyệt "an toàn" khác của bạn mở và hoạt động như bình thường.


364
2017-10-11 12:13



thật sự cảm ơn. nhờ điều này, tôi đã có thể khởi chạy trang web dưới dạng ứng dụng độc lập "C:\..\chrome.exe" --disable-web-security --user-agent="Android" --user-data-dir="C:/temp-chrome-eng" --app="file:///C:/apps/index.html" - Elvis Ciotti
Chính xác những gì tôi cần khi cố gắng phát triển một API trên máy cục bộ của mình. - generalopinion
Điều này làm việc một điều trị. Nó cũng để lại trường hợp chrome bình thường của tôi với bảo mật được bật và hoạt động bình thường. Chỉ cần một lưu ý phụ khi Chrome hoạt động sẽ thông báo cho bạn rằng "Tính ổn định và bảo mật sẽ bị ảnh hưởng". - etoxin
Bạn phải đóng tất cả cửa sổ Chrome và hủy quá trình chrome trước khi thử. - sibidiba
Lệnh này hoạt động trong OSX bằng cách bắt đầu một cá thể thứ hai: open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/chrome_dev_session" --disable-web-security  (Bạn có thể cần tạo thư mục tạm thời trước) - chilltemp


Tôi không muốn khởi động lại Chrome và vô hiệu hóa bảo mật web của mình (vì tôi đang duyệt trong khi phát triển) và vấp ngã vào tiện ích Chrome này.

Cửa hàng Chrome cho phép kiểm soát-cho phép-xuất xứ: *
(https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=vi)

Về cơ bản đó là một công tắc bật tắt nhỏ để bật và tắt kiểm tra Cho phép truy cập nguồn gốc. Hoạt động hoàn hảo cho tôi vì những gì tôi đang làm.

EDIT: Tôi đã thử bằng cách sử dụng chỉ là ngày khác cho một dự án khác và nó ngừng hoạt động. Gỡ cài đặt và cài đặt lại tiện ích mở rộng đã sửa nó (để đặt lại mặc định).


61
2018-06-20 06:03



cách tôi đạt được và tích hợp với tiện ích của mình vì tiện ích mở rộng của tôi cần truy cập miền chéo. Tôi không thể buộc người dùng phải mở trình duyệt wth disable-web-security - codebased
Nó chỉ cho phép các yêu cầu AJAX không phải là các trang web và các phần mở rộng bình thường để truy cập các trang web. - Lothar
Tuy nhiên, tiện ích mở rộng này sẽ không hoạt động đối với tệp cục bộ. Gắn với --disable-web-security chuyển đổi trong trường hợp đó. - bryc
@ bryc Nó không thực sự có ý nghĩa. Hãy xem xét mặc dù bạn có thể sử dụng --allow-file-access-from-files thay vì vô hiệu hóa tất cả bảo mật web. - Coburn
Tiện ích mở rộng hữu ích, hoạt động như mong đợi. NHƯNG Nếu tôi bật tiện ích mở rộng này thì tôi không thể duyệt qua youtube, tài liệu google, v.v. Tôi chắc chắn vấn đề trong phần mở rộng. - MyTitle


Dành cho các cửa sổ:

  1. Mở menu bắt đầu
  2. Kiểu các cửa sổ+R hoặc mở "Chạy"
  3. Thực hiện lệnh sau:

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

Dành cho Mac:

  1. Đi đến Terminal
  2. Thực hiện lệnh sau:

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

Trình duyệt Chrome đã tắt bảo mật web mới sẽ mở bằng thông báo sau:

enter image description here


57
2018-02-03 12:59



@ downvoters xin vui lòng đề cập đến lý do cho downvote như không có điểm của downvote trong câu trả lời - GSB
Làm việc tốt cho tôi trên Windows 10, cũng không cần phải đóng các phiên bản Chrome khác. - Nick M


Đối với Windows ... tạo lối tắt Chrome trên màn hình của bạn.
Nhấp chuột phải> thuộc tính> Phím tắt
Chỉnh sửa đường dẫn "đích":

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

(Thay đổi 'C: .... \ chrome.exe' thành nơi đặt chrome của bạn).

et voilà :)


38
2017-08-27 12:43



Tính đến hôm nay, ngày 27 tháng 7 năm 2001, nó hoạt động cho tôi, cho phép tôi thực hiện Ajax trên máy chủ cục bộ của riêng mình. - molokoloco
Thật không may, điều này không làm việc cho tôi. - Tod Birdsall
có "bạn đang sử dụng thẻ dòng lệnh không được hỗ trợ: --disable-web-security" với phiên bản Canary 53 - khoailang
@khoailang bạn vẫn có thể sử dụng công tắc. Cảnh báo đó là một phần trong cuộc chiến của Google về bất an (một điều tốt). Ngoài ra, kể từ phiên bản 55+, bạn cũng cần phải sử dụng --user-data-dir = <một số thư mục khác tại đây> để Google không muốn bạn trộn các quy tắc không an toàn với các cấu hình bình thường của bạn. - lassombra


Dường như không có giải pháp nào trên thực tế hoạt động. Các --disable-web-security không còn được hỗ trợ trong các phiên bản chrome gần đây nữa.

Allow-Control-Allow-Origin: * - tiện ích chrome đã giải quyết được một phần vấn đề. Nó chỉ hoạt động nếu yêu cầu của bạn đang sử dụng phương thức GET và không có tiêu đề HTTP tùy chỉnh nào. Nếu không, chrome sẽ gửi yêu cầu HTTP OPTIONS làm yêu cầu trước chuyến bay. Nếu máy chủ không hỗ trợ CORS, máy chủ sẽ phản hồi với mã trạng thái HTTP 404. Plugin không thể sửa đổi mã trạng thái HTTP phản hồi. Vì vậy, chrome sẽ từ chối yêu cầu này. Không có cách nào để plugin chrome sửa đổi mã trạng thái HTTP phản hồi dựa trên API tiện ích mở rộng hiện tại của Chrome. Và bạn cũng không thể thực hiện chuyển hướng cho yêu cầu khởi xướng XHR.

Bạn không chắc chắn tại sao Chrome khiến cho các nhà phát triển gặp khó khăn như vậy. Nó chặn tất cả các cách có thể để vô hiệu hóa kiểm tra bảo mật XSS ngay cả khi sử dụng phát triển đó là hoàn toàn không cần thiết.

Sau nhiều ngày đấu tranh và nghiên cứu, một giải pháp hoạt động hoàn hảo cho tôi: để sử dụng corsproxy. Bạn có hai lựa chọn ở đây: 1. sử dụng corsproxy.com 2. cài đặt corsproxy trong hộp địa phương: npm cài đặt -g corsproxy

[Cập nhật vào ngày 23 tháng 6 năm 2018] Gần đây tôi đang phát triển một ứng dụng SPA cần sử dụng corsproxy một lần nữa. Nhưng dường như không có corsproxy trên github có thể đáp ứng yêu cầu của tôi.

  • cần nó để chạy bên trong tường lửa vì lý do bảo mật. Vì vậy, tôi không thể sử dụng https://cors-anywhere.herokuapp.com/.
  • Nó phải hỗ trợ https vì chrome sẽ chặn yêu cầu ajax không có https trong trang https.
  • Tôi cần phải chạy trên nodejs. Tôi không muốn duy trì một chồng ngôn ngữ khác.

Vì vậy, tôi quyết định phát triển phiên bản corsproxy của riêng mình với các nút. Nó thực sự rất đơn giản. Tôi đã xuất bản nó như là một ý chính trên github. Đây là gist mã nguồn: https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10

  • Đó là trong mã nodejs đơn giản mà không có bất kỳ phụ thuộc bổ sung nào
  • Bạn có thể chạy ở chế độ http và https (bằng cách đi qua cổng https số trong dòng lệnh), để chạy https, bạn cần tạo cert và và đặt thư mục webroot.
  • Nó cũng phục vụ như là máy chủ tập tin tĩnh
  • Nó cũng hỗ trợ yêu cầu OPTION trước chuyến bay.

32
2018-01-12 07:51



Nếu bạn đang đi đến mức độ đó, bạn luôn có thể lưu trữ một máy chủ web cục bộ hoặc từ xa kéo nội dung từ trang web mà bạn mong muốn và sau đó thiết lập các tiêu đề CORS thích hợp trên đó. - Coburn
Tôi đã nghĩ về con đường này trước đây. Nhưng điều này cần một số mã hóa, đặc biệt là trong trường hợp của tôi, tôi cần phải gọi một số dịch vụ có nguồn gốc từ các lĩnh vực khác nhau. Vì vậy, tôi phải ánh xạ mẫu URL khác nhau cho các tên miền khác nhau. Đây chính xác là những gì corsproxy đã làm cho chúng ta. Và nó hoạt động hoàn hảo. - Jianwu Chen
Không đúng .. Cách đề cập trong câu trả lời được chấp nhận làm việc cho tôi .. Như nó đề cập, Chrome 49 trở đi lệnh 'chrome.exe --disable-web-security -user-data-dir' làm việc cho tôi .. - Gaurang Patel
Chromium 53, --disable-web-security --user-data-dir không hoạt động đối với tôi - Dark Star1
Trong 53+ bạn cần phải cung cấp một thư mục dữ liệu người dùng duy nhất khác với thư mục bình thường của bạn. Điều này tạo ra một hồ sơ mới cho môi trường không an toàn. --user-data-dir cần phải được đặt bằng một cái gì đó, chẳng hạn như trong Olas trả lời ở trên. Nếu bạn thực sự muốn, bạn có thể đặt nó bằng thư mục hồ sơ người dùng bình thường thực tế của bạn, nhưng điều này không được khuyến khích vì nó để hồ sơ bình thường của bạn mở ra các cuộc tấn công ngẫu nhiên nếu bạn bắt đầu duyệt web bình thường trong chế độ đó. - lassombra


Dành cho các cửa sổ người dùng có Phiên bản Chrome 60.0.3112.78. Bạn đừng cần phải đóng bất kỳ phiên bản chrome nào.

  1. Tạo lối tắt trên màn hình của bạn
  2. Nhấp chuột phải vào phím tắt và nhấp vào Thuộc tính
  3. Chỉnh sửa thuộc tính Target
  4. Đặt nó thành "C: \ Program Files (x86) \ Google \ Chrome \ Application \ chrome.exe" --disable-web-security --user-data-dir = "C: / ChromeDevSession"
  5. Bắt đầu chrome và bỏ qua thông báo cho biết - bảo mật-web-security không được hỗ trợ!

HÃY CHIA SẺ KHÔNG SỬ DỤNG VIỆC CẬP NHẬT TUYÊN BỐ TUYỆT ĐỐI TUYỆT VỜI NÀY CHO MÙA XUÂN VÌ BẠN CÓ THỂ ĐƯỢC LẠI ĐÂY VỚI NÓ!


31
2017-08-01 09:27



Làm việc như người ở. Tôi không thể tin rằng Chrome không cho phép nhà phát triển vô hiệu hóa tính năng này mà không bắt đầu phiên mới. Ít nhất là họ có một cách mặc dù. - FearlessFuture
và bạn vẫn có thể sử dụng chrome debugging trên mã nguồn của mình không? - Righto
vừa được thử nghiệm, bạn vẫn có thể sử dụng công cụ dev theo chế độ này. - KuN


Tôi tìm cách tốt nhất để thực hiện việc này là sao chép lối tắt Chrome hoặc Chrome Canary trên màn hình nền của bạn. Đổi tên phím tắt này thành "NO CORS" rồi chỉnh sửa thuộc tính của phím tắt đó.

trong mục tiêu thêm --disable-web-security --user-data-dir="D:/Chrome" đến cuối đường dẫn đích.

mục tiêu của bạn sẽ trông giống như sau:

Cập nhật: Đã thêm cờ mới.

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

enter image description here


30
2018-01-13 23:48



Điều này chỉ mang lại cho tôi 404 thay vì lỗi trước chuyến bay - L1ghtk3ira
Lỗi 404 sẽ là lỗi liên quan đến máy chủ chứ không phải lỗi Google Chrome. - etoxin
@etoxin Câu trả lời này không còn hợp lệ trong phiên bản mới nhất của chrome. Bạn phải thêm --disable-web-security --user-data-dir = "D: / Chrome" - vignesh sivakumar
đã cập nhật câu trả lời để làm việc với chrome mới nhất. - etoxin


Đối với Selenium Webdriver, bạn có thể khởi động selenium bằng các đối số thích hợp (hoặc "switch") trong trường hợp này.

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

16
2018-03-27 13:07



đó là hai dấu gạch ngang thích hợp cho việc vô hiệu hóa bảo mật web. nó trình duyệt của tôi nó làm cho họ trông giống như một dấu gạch ngang looong. - mikelupo