etc./StackOverFlow

Chrome에서 동일한 출처 정책 비활성화

청렴결백한 만능 재주꾼 2021. 12. 28. 01:51
반응형

질문자 :Landon Kuhn


Google의 Chrome 브라우저에서 동일 출처 정책 을 비활성화하는 방법이 있습니까?



크롬(또는 크롬)을 닫고 --disable-web-security 인수로 다시 시작하십시오. 방금 이것을 테스트하고 "localhost"에서 제공되는 페이지에 src="http://google.com"이 포함된 iframe의 내용에 액세스할 수 있음을 확인했습니다(크롬 5/우분투에서 테스트). 나를 위해 정확한 명령은 다음과 같습니다.

참고 : 명령을 실행하기 전에 모든 크롬 인스턴스를 종료하십시오.

 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

Dagg Nabbit

네. OSX의 경우 터미널을 열고 다음을 실행합니다.

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

--user-data-dir은 OSX의 Chrome 49+에 필요합니다.

Linux 실행의 경우:

 $ google-chrome --disable-web-security

또한 AJAX 또는 JSON과 같은 개발 목적으로 로컬 파일에 액세스하려는 경우 이 플래그도 사용할 수 있습니다.

 --allow-file-access-from-files

Windows의 경우 명령 프롬프트로 이동하여 Chrome.exe가 있는 폴더로 이동하고 다음을 입력합니다.

 chrome.exe --disable-web-security

그러면 동일한 원본 정책을 비활성화하고 로컬 파일에 액세스할 수 있습니다.

업데이트: Chrome 22+의 경우 다음과 같은 오류 메시지가 표시됩니다.

지원되지 않는 명령줄 플래그인 --disable-web-security를 사용하고 있습니다. 안정성과 보안이 저하될 것입니다.

그러나 개발하는 동안 해당 메시지를 무시할 수 있습니다.


ectype

Windows 사용자의 경우:

여기에서 허용되는 솔루션의 문제는 이미 Chrome을 열고 chrome.exe --disable-web-security 명령을 실행하려고 하면 작동하지 않는다는 것입니다.

그런데 이것을 조사하다 슈퍼유저에 관한 글을 보게 되었습니다. 웹 보안이 있는 상태와 없는 상태로 Chrome을 동시에 실행할 수 있습니까? .

기본적으로 명령에 추가하고 대신 이렇게 실행해야 합니다(또는 바로 가기를 만들고 이를 통해 새 Chrome 인스턴스를 실행).

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

다른 "보안" 브라우저 인스턴스를 열어두고 정상적으로 작동하는 것과 동시에 Chrome의 새로운 "안전하지 않은" 인스턴스를 엽니다.

이것은 C: 아래에 새 폴더/디렉토리 "Chrome dev 세션"을 만들어 작동하고 이 새 Chrome 인스턴스가 사용자 및 세션 데이터에 해당 폴더/디렉토리를 사용하도록 지시합니다. 이 때문에 새 인스턴스는 "일반" Chrome 데이터와 분리되고 북마크와 기타 저장된 데이터는 이 인스턴스에서 사용할 수 없습니다.

참고: 이 방법으로 열린 Chrome의 첫 번째 "새" 인스턴스만 영향을 받으므로 첫 번째 새 Chrome 창의 첫 번째 탭만 영향을 받습니다. 해당 인스턴스를 닫으면 동일한 명령을 다시 사용할 수 있습니다. 예를 들어 로컬 앱 또는 이와 유사한 책갈피는 동일한 폴더를 가리키기 때문에 그대로 유지됩니다.

여러 "안전하지 않은" 인스턴스를 실행하려면 각각 고유한 폴더/디렉토리가 필요하므로 다른 폴더 이름으로 명령을 다시 실행해야 합니다. 그러나 이것은 또한 각 안전하지 않은 인스턴스가 다른 인스턴스와 분리되어 책갈피 또는 기타 저장 사용자 또는 세션 데이터를 인스턴스 간에 사용할 수 없음을 의미합니다.


Ola Karlsson

Windows의 경우 :

  1. 시작 메뉴 열기

  2. windows + R을 입력하거나 "실행"을 엽니다.

  3. 다음 명령을 실행합니다.

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

:

  1. 터미널로 이동

  2. 다음 명령을 실행합니다.

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

새로운 웹 보안이 비활성화된 크롬 브라우저가 다음 메시지와 함께 열려야 합니다.

여기에 이미지 설명 입력

맥용

기존 탭을 닫지 않고 웹 보안 비활성화된 Chrome 브라우저의 새 인스턴스를 열려면 아래 명령을 사용하십시오.

 open -na Google\ Chrome --args --user-data-dir=/tmp/temporary-chrome-profile-dir --disable-web-security

아래와 같이 웹 보안이 비활성화된 Chrome 브라우저의 새 인스턴스가 열립니다.

여기에 이미지 설명 입력


Gauri Bhosle

Chrome 버전 60.0.3112.78(솔루션이 테스트되고 작동한 날) 및 최소 오늘 19.01.2019(버전 71.0.3578.98)까지 Windows 사용자의 경우 . 크롬 인스턴스를 닫을 필요 가 없습니다.

  1. 바탕 화면에 바로 가기 만들기
  2. 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭하십시오.
  3. 대상 속성 편집
  4. "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="C:/ChromeDevSession"으로 설정합니다.
  5. 크롬을 시작하고 --disable-web-security가 지원되지 않는다는 메시지를 무시하십시오!

해킹을 당할 수 있으므로 이 특정 브라우저 인스턴스를 브라우징에 사용하지 않도록 주의하십시오!


Ognyan Dimitrov

편집 3: 확장 프로그램이 더 이상 존재하지 않는 것 같습니다... 일반적으로 요즘 CORS를 해결하기 위해 별도의 디렉토리가 있는 다른 버전의 Chrome을 설정하거나 https://addons.mozilla.org/en-US/ 와 함께 Firefox를 사용합니다. 대신firefox/addon/cors-everywhere/.

편집 2: 더 이상 일관되게 작동하도록 할 수 없습니다.

편집: 나는 다른 프로젝트를 위해 다른 날을 사용하려고 시도했고 작동을 멈췄습니다. 확장 프로그램을 제거하고 다시 설치하면 문제가 해결되었습니다(기본값 재설정).

원래 답변:

나는 Chrome을 다시 시작하고 웹 보안을 비활성화하고 싶지 않았고(개발하는 동안 탐색했기 때문에) 이 Chrome 확장 프로그램을 우연히 발견했습니다.

Chrome 웹 스토어 Allow-Control-Allow-Origin: *
(https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=ko)

기본적으로 Allow-Access-Origin-Control 체크를 켜고 끄는 작은 토글 스위치입니다. 내가하고있는 일에 대해 완벽하게 작동합니다.


Coburn

최신 크롬 버전 92.0.4515.131(공식 빌드) 사용(64비트)

windows: 시작 버튼을 클릭한 다음 아래를 복사하여 붙여넣습니다( D:\temp 를 원하는 대로 변경).:

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

Linux : 터미널을 시작한 다음 아래 명령을 실행합니다( ~/tmp 디렉토리를 원하는 대로 변경).

 google-chrome --disable-site-isolation-trials --disable-web-security --user-data-dir="~/tmp"

참고: 이 솔루션은 격리된 샌드박스에서 크롬을 시작하며 기본 크롬 프로필에는 영향을 미치지 않습니다.


user2576266

위의 솔루션 중 어느 것도 실제로 작동하지 않는 것 같습니다. --disable-web-security 는 최신 크롬 버전에서 더 이상 지원되지 않습니다.

Allow-Control-Allow-Origin: * - 크롬 확장 프로그램 이 문제를 부분적으로 해결했습니다. 요청이 GET 메소드를 사용하고 사용자 정의 HTTP 헤더가 없는 경우에만 작동합니다. 그렇지 않으면 크롬은 OPTIONS HTTP 요청을 비행 전 요청으로 보냅니다. 서버가 CORS를 지원하지 않으면 404 HTTP 상태 코드로 응답합니다. 플러그인은 응답 HTTP 상태 코드를 수정할 수 없습니다. 따라서 크롬은 이 요청을 거부합니다. 크롬 플러그인이 현재 크롬 확장 API를 기반으로 응답 HTTP 상태 코드를 수정할 수 있는 방법은 없습니다. 그리고 XHR 시작 요청에 대해서도 리디렉션을 수행할 수 없습니다.

Chrome이 왜 개발자의 삶을 어렵게 만드는지 잘 모르겠습니다. 완전히 불필요한 개발 용도라도 XSS 보안 검사를 비활성화하는 가능한 모든 방법을 차단합니다.

며칠간의 고군분투와 연구 끝에 corsproxy 를 사용하는 한 가지 솔루션이 완벽하게 작동합니다. 여기에는 두 가지 옵션이 있습니다. 1. [ https://cors-anywhere.herokuapp.com/] 사용 2. 로컬 상자에 corsproxy를 설치합니다. npm install -g corsproxy

[2018년 6월 23일 업데이트] 최근 corsproxy를 다시 사용해야 하는 SPA 앱을 개발 중입니다. 그러나 github의 corsproxy 중 어느 것도 내 요구 사항을 충족할 수 없는 것 같습니다.

  • 보안상의 이유로 방화벽 내부에서 실행해야 합니다. 그래서 https://cors-anywhere.herokuapp.com/ 을 사용할 수 없습니다.
  • 크롬은 https 페이지에서 no-https ajax 요청을 차단하므로 https를 지원해야 합니다.
  • nodejs에서 실행해야 합니다. 다른 언어 스택을 유지하고 싶지 않습니다.

그래서 nodejs를 사용하여 내 고유 버전의 corsproxy를 개발하기로 결정했습니다. 실제로는 매우 간단합니다. 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


Jianwu Chen

Windows의 경우... 바탕 화면에 Chrome 바로 가기를 만듭니다.
우클릭 > 속성 > 바로가기
"대상" 경로 편집:

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

('C:....\chrome.exe'를 크롬이 있는 곳으로 변경하십시오).

자 :)


molokoloco

Mac 터미널에서 이 명령을 시도하십시오.

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

보안이 비활성화된 다른 크롬 인스턴스가 열리고 더 이상 CORS 문제가 없습니다. 또한 더 이상 다른 크롬 인스턴스를 닫을 필요가 없습니다. localhost URL을 귀하의 URL로 변경하십시오.


Vivek Sinha

이 작업을 수행하는 가장 좋은 방법은 Windows 바탕 화면에 Chrome 또는 Chrome Canary 바로 가기를 복제하는 것입니다. 이 바로 가기의 이름을 "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"

여기에 이미지 설명 입력


etoxin

이러지 마! 당신은 공격에 당신의 계정을 열고 있습니다 . 이렇게 하면 제3자 사이트가 다른 웹사이트, 즉 귀하가 로그인한 사이트에 요청을 발행할 수 있습니다.

대신 로컬 서버를 실행하십시오. 쉘/터미널/명령줄을 열고 입력하는 것만 큼 쉽습니다.

 cd path/to/files python -m SimpleHTTPServer

그런 다음 브라우저에서

 http://localhost:8000

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

업데이트

이 대답을 downvoting 사람들은 여기에 가서해야 이것도 하나를 downvote 일치하도록. 내 대답이 왜 그렇게 downvoted이고 여기 에서 같은 대답이 가장 많이 투표 된 답변인지 모르겠습니다.

당신 공격에 자신을 개방하고 있습니다. npm을 통해 원격 또는 로컬로 사이트에 포함하는 모든 단일 타사 스크립트가 이제 데이터를 업로드하거나 자격 증명을 도용할 수 있습니다. 당신은 당신이 할 필요가없는 일을하고 있습니다. 제안된 솔루션은 어렵지 않고 30초가 걸리며 열린 공격을 허용하지 않습니다. 더 나은 일이 그렇게 간단할 때 왜 자신을 취약하게 만들기로 선택하겠습니까?

사람들에게 보안 기능을 해제하라고 말하는 것은 친구에게 현관문을 잠그지 않은 상태로 두거나 현관 매트 아래에 열쇠를 두라고 말하는 것과 같습니다. 물론 확률은 낮을 수 있지만 강도를 당하면 강제 입국의 증거가 없으면 보험을 징수하기 어려울 수 있습니다. 마찬가지로 보안비활성화하면 보안 을 비활성화하는 것 입니다. 보안을 비활성화하지 않고 간단하게 문제를 해결할 수 있을 때 이렇게 하는 것은 무책임합니다. 보안을 비활성화한 일부 회사에서 해고되지 않았다면 놀랐을 것입니다.


gman

Selenium Webdriver의 경우 이 경우 적절한 인수(또는 "스위치")를 사용하여 Selenium이 Chrome을 시작하도록 할 수 있습니다.

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

mikelupo

"Allow-Control-Allow-Origin: *" 라는 크롬 플러그인을 사용할 수 있습니다 ... 아주 간단하고 잘 작동합니다. 여기에서 확인하십시오: *

크롬 확장


Mohamed Saleh

  1. 새 바로 가기 만들기 :

새 바로가기 만들기


  1. 다음 경로를 붙여넣습니다 .

"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"

경로 붙여넣기


  1. 이름 :

Unsafe Chrome.exe

여기에 이미지 설명 입력


이제 데스크톱에서 CORS 문제 없이 프런트 엔드 애플리케이션을 디버깅하는 데 사용할 수 있는 안전하지 않은 버전의 Chrome이 있습니다.


Shadi Namrouti

Linux에서 Chrome을 사용하는 경우 다음 명령이 작동합니다.

 google-chrome --disable-web-security

chhantyal

OSX의 경우 터미널에서 다음 명령을 실행합니다.

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

이렇게 하면 맨 위에 경고와 함께 Chrome의 새 인스턴스가 시작됩니다.


Malay

이 Chrome 플러그인은 저에게 적합합니다: Allow-Control-Allow-Origin: * - Chrome 웹 스토어


Bruce

MAC 사용자 전용

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

Saurabh Chandra Patel

이 크롬 확장 프로그램 Allow-Control-Allow-Origin을 사용하기만 하면 됩니다.

확장 기능의 아이콘을 클릭하여 원하는 대로 리소스 간 공유 활성화를 켜거나 끕니다.


Peter Wilson

Linux-Ubuntu에서 일반 세션과 안전하지 않은 세션을 동시에 실행하려면 다음 명령을 실행하십시오.

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

Santiago M. Quintero

chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/

MechaCode

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용 입니다. 카나리아_CORS.bat

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

guya

Windows 10에서는 다음이 작동합니다.

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

ItsAllABadJoke

맥 사용자:

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

Chrome 48 이전에는 다음을 사용할 수 있습니다.

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

Braian Mellor

이것은 끊임없이 움직이는 목표입니다.... 오늘 저는 작동시키기 위해 다른 플래그를 추가해야 했습니다. --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


denodster

CORS Toggle이라는 Chrome 확장 프로그램이 있습니다.

액세스하고 Chrome에 추가하려면 여기를 클릭하세요 .

추가한 후 켜기 위치로 전환하여 도메인 간 요청을 허용합니다.


Let Me Tink About It

Ubuntu에서 아래 명령을 사용하여 크롬을 시작합니다(동일한 출처 정책을 비활성화하고 분리 모드에서 크롬 열기).

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

me_astr

Windows의 경우:

( Windows 8.1, 크롬 44.0 사용 )

먼저 구글 크롬을 종료합니다.

그런 다음 명령 프롬프트를 열고 '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

크롬의 새 창이 열립니다.


AFA

Windows PC에서 이전 버전의 Chrome을 사용하면 명령이 모든 사용자에게 적용됩니다. Chrome을 26 버전으로 다운그레이드했는데 작동했습니다.


user1578524

출처 : http:www.stackoverflow.com/questions/3102819/disable-same-origin-policy-in-chrome

반응형