크롬 콘솔 차단 해제 - keulom konsol chadan haeje

트위터에서 올라온 링크로 보게 된 Stackoverflow의 글을 보고 트위터에 올렸더니 꽤 많은 리트윗이 일어나서 블로그에도 한번 정리해 둔다.

크롬 콘솔을 페이스북이 어떻게 막았냐와 이에 대한 페이스북 개발자의 답변.. 답변에 써진대로 클라이언트에서 막는걸 권장하진 않지만 크롬 콘솔을 저런식으로 막을수 있는지 처음 알았다. http://t.co/MtPYqxS4jc

— Outsider (@Outsideris) February 12, 2014

윗글에 자세한 내용이 나오긴 하지만 정리하자면 이렇다. 어떤 사람이 페이스북에 들어갔더니 크롬에서 콘솔을 사용할 수 없게 막혀있는데 어떻게 막은 거냐 하는 질문이고 여기에 페이스북의 보안 엔지니어라는 사람이 나타나서 사용자가 콘솔을 이용해서 공격할 수 있는지 테스트하느라고 일부 사용자에게 적용되었던 거라고 답변을 달았다.

with ((console && console._commandLineAPI) || {}) {
  // code here
}

크롬의 콘솔은 위의 코드로 모두 감싸아져 있으므로 여기서 console._commandLineAPI를 재정의해서 오류를 던지도록 하면 사용자가 크롬에서의 개발자도구로 콘솔을 사용할 수 없게 할 수 있다.

Object.defineProperty(console, '_commandLineAPI', { get : function() { throw '콘솔을 사용할 수 없습니다.' } });

웹페이지에서 위 코드를 추가하면 해당 페이지에서 크롬 콘솔을 사용하면 다음과 같이 오류가 난다. 콘솔에서 코드를 사용하면 다 오류가 발생하고 자동완성도 동작하지 않는다. 물론 이 코드는 위의 크롬 콘솔이 코드를 감싸는 구조를 이용한 것이므로 페이지의 자바스크립트로 삽입해야지 크롬 콘솔에서 위 코드를 입력한다고 콘솔이 차단되지 않는다. 위의 Object.defineProperty()는 ES5에 들어간 객체의 프로퍼티를 다루는 API다.

크롬 콘솔 차단 해제 - keulom konsol chadan haeje

글을 쓴 김에 이 글에서 흥미로운 점이 있는데 페이스북의 개발자가 직접 나타나서 답변을 달았다는 점이다. 우리나라였으면 어땠을까 왠지 저런 내용을 공개적으로 쓰려면 회사의 허락을 받아야 될 것 같은 불안감도 있고 보고를 하면 아마도 나중에 가치가 있을지도 모르는 잠재력 있는 스킬일지도 모르니 공개하지 말라고 할 것 같다.(대부분은 자체검열로 답변을 안 달겠지.)

그리고 이 코드를 사용한 발단이 된 Self-XSS 공격도 한 번씩 보면 흥미롭다. 이런 공격은 취약점이라고 하기도 그렇고 참...

마지막으로 윗글의 답변에 나온 대로 보안 공격을 클라이언트에서 차단하려는 접근은 좋지 않은 방법이다. 어차피 우회하려고 맘먹으면 얼마든지 우회할 수 있으므로 보안이라는 의미도 그다지 없다. 왠지 이런 코드가 한때 국내 웹사이트의 기본처럼 되었던 "우클릭 방지"나 "텍스트 복사할 때 강제 출처 추가"처럼 오용되지 않을까 하는 노파심에 그냥 이런 것도 가능하구나! 정도로 봐주시길...

크롬 개발자도구를 무력화 하는 소스 

아래의 소스를 사이트 페이지에 넣어주면..

크롬개발자 도구로 사이트를 보려해도 볼 수 가 없게 된다.

"Object.defineProperty(console, '_commandLineAPI', { get : function() { throw '콘솔을 사용할 수 없습니다.' } });"

웹페이지에서 위 코드를 추가하면 해당 페이지에서 크롬 콘솔을 사용하면 다음과 같이 오류가 난다. 콘솔에서 코드를 사용하면 다 오류가 발생하고 자동완성도 동작하지 않는다. 물론 이 코드는 위의 크롬 콘솔이 코드를 감싸는 구조를 이용한 것이므로 페이지의 자바스크립트로 삽입해야지 크롬 콘솔에서 위 코드를 입력한다고 콘솔이 차단되지 않는다. 위의 Object.defineProperty()는 ES5에 들어간 객체의 프로퍼티를 다루는 API다.

소스.txt

0.00MB

Object.defineProperty(console, '_commandLineAPI', { get : function() { throw '콘솔을 사용할 수 없습니다.' } }); 

이 내용에 대해서 자세한 사할을 알고 싶다면..

https://blog.outsider.ne.kr/1031 페이지에 방문해서 문의해 보시기 바랍니다.

앱 및 확장 프로그램 허용 또는 차단하기

Google 관리 콘솔에서 Chrome 정책을 관리하는 관리자를 위한 페이지입니다.

Chrome Enterprise 관리자는 사용자가 관리 Chrome 브라우저 또는 ChromeOS 기기에 설치할 수 있는 앱 또는 확장 프로그램을 지정할 수 있습니다.

이 도움말에서는 모든 사용자에 대해 정책을 설정하거나 그룹별로 맞춤설정하는 방법에 관한 간략한 개요를 확인할 수 있습니다. 자세한 내용은 기업의 확장 프로그램 관리 가이드를 참고하세요.

시작하기 전에

  • 특정 사용자 그룹 또는 등록된 Chrome 브라우저에 대해 설정하려면 사용자 계정 또는 브라우저를 그룹이나 조직 단위로 지정하세요. 사용자 계정만 그룹에 추가할 수 있습니다. 자세한 내용은 그룹스 및 조직 단위 추가하기를 참고하세요.
  • Windows, Mac, Linux 컴퓨터에서 Chrome 브라우저 사용자에게 설정을 적용하려면 사용자가 속한 조직 단위에 Chrome 브라우저 관리를 사용 설정하세요. Chrome 브라우저 관리 사용 설정하기를 참고하세요.
  • Chrome 웹 스토어 서비스가 사용 설정되어 있는지 확인합니다. 설정되어 있지 않으면 사용자가 Chrome 웹 스토어에 액세스하여 관리자가 허용한 항목을 비롯한 앱과 확장 프로그램을 탐색하거나 설치할 수 없습니다.
    기본적으로 일부 Education 도메인에서는 Chrome 웹 스토어 서비스가 사용 중지되어 있습니다. 사용자를 대상으로 Chrome 웹 스토어 서비스를 사용 설정하는 방법에 관한 자세한 내용은 추가 Google 서비스를 참고하세요.
    참고: Chrome 웹 스토어 서비스를 사용 중지해도 강제 설치된 앱 및 확장 프로그램은 계속 자동으로 설치되며 사용자가 계속 확장 프로그램을 사이드로드할 수 있습니다.
  • 전체 앱 수에 그룹 수를 곱한 값은 500으로 제한됩니다.

관리 콘솔에서 정책 설정하기

Windows, Mac 또는 Linux를 실행하는 모든 기기 또는 등록된 브라우저에서 로그인한 사용자에게 적용할 수 있습니다. 자세한 내용은 설정 적용 시기 이해하기를 참고하세요.

지정한 항목을 제외한 모든 앱 및 확장 프로그램 허용 또는 차단하기

이 단계에서는 관리자가 관리 콘솔에서 Chrome 설정을 관리하는 작업에 익숙한 것으로 가정합니다.

  1. 관리 콘솔 홈페이지에서 기기Chrome 관리로 이동합니다.

  2. 앱 및 확장 프로그램사용자 및 브라우저를 클릭합니다.
  3. (사용자만 해당) 그룹에 설정을 적용하려면 다음 안내를 따르세요.
    1. 그룹을 선택합니다.
    2. 설정을 적용할 그룹을 선택합니다. 
  4. 모든 사용자 및 등록된 브라우저에 설정을 적용하려면 상위 조직 단위가 선택된 상태로 두세요. 그렇지 않으면 하위 조직 단위를 선택하세요.
  5. 오른쪽에서 추가 설정
    크롬 콘솔 차단 해제 - keulom konsol chadan haeje
    을 클릭합니다.
  6. 허용/차단 모드로 이동합니다.
  7. 수정을 클릭합니다.
  8. Play 스토어에서 사용자가 설치할 수 있도록 허용하려는 앱 및 확장 프로그램 유형을 선택합니다.
    참고: 기본 계정 사용자만 Google Play 스토어의 앱 및 확장 프로그램을 설치할 수 있습니다.
    • 관리자가 차단하지 않은 모든 앱 설치 허용: 사용자는 관리자가 차단한 앱 및 확장 프로그램을 제외한 모든 Google Play 스토어 앱 및 확장 프로그램을 설치할 수 있습니다.
    • 관리자가 허용하지 않은 모든 앱 설치 차단: 사용자는 관리자가 허용한 Google Play 스토어의 앱 및 확장 프로그램만 설치할 수 있습니다.
  9. Chrome 웹 스토어의 경우 사용자에게 설치를 허용할 앱 및 확장 프로그램 유형을 선택합니다.
    • 관리자가 차단하지 않은 모든 앱 설치 허용: 사용자는 관리자가 차단한 앱 및 확장 프로그램을 제외한 모든 Chrome 웹 스토어 앱 및 확장 프로그램을 설치할 수 있습니다.
    • 관리자가 허용하지 않은 모든 앱 설치 차단: 사용자는 관리자가 허용한 Chrome 웹 스토어의 앱 및 확장 프로그램만 설치할 수 있습니다.
    • 관리자가 허용하지 않은 모든 앱 설치가 차단되지만 사용자는 확장 프로그램을 허용 목록에 추가하도록 요청할 수 있음: 사용자는 관리자가 허용한 Chrome 웹 스토어의 앱 및 확장 프로그램만 설치할 수 있으며 필요한 확장 프로그램이 있는 경우 요청할 수 있습니다. 관리자는 사용자가 요청하는 확장 프로그램을 허용 또는 차단하거나 자동으로 설치할 수 있습니다. 자세한 내용은 확장 프로그램 워크플로: 사용자가 확장 프로그램을 요청하도록 허용을 참고하세요.
  10. 저장을 클릭합니다.

하나의 앱 차단 또는 허용하기

이 단계에서는 관리자가 관리 콘솔에서 Chrome 설정을 관리하는 작업에 익숙한 것으로 가정합니다.

도움말: 등록된 브라우저의 확장 프로그램을 차단하거나 허용하려면 앱 및 확장 프로그램 사용 보고서를 사용하는 것이 더 쉽습니다. 자세한 내용은 앱 및 확장 프로그램 사용 세부정보 보기를 참고하세요.

  1. 관리 콘솔 홈페이지에서 기기Chrome 관리로 이동합니다.

  2. 앱 및 확장 프로그램사용자 및 브라우저를 클릭합니다.

  3. (사용자만 해당) 그룹에 설정을 적용하려면 다음 안내를 따르세요.
    1. 그룹을 선택합니다.
    2. 설정을 적용할 그룹을 선택합니다. 
  4. 모든 사용자 및 등록된 브라우저에 설정을 적용하려면 상위 조직 단위가 선택된 상태로 두세요. 그렇지 않으면 하위 조직 단위를 선택하세요.
  5. 정책을 구성하려는 앱을 찾습니다.
  6. 설치 정책에서 차단을 선택합니다.
  7. 저장을 클릭합니다.

권한별로 앱 및 확장 프로그램 차단하기

이 단계에서는 관리자가 관리 콘솔에서 Chrome 설정을 관리하는 작업에 익숙한 것으로 가정합니다.

조직에서 허용하지 않는 특정 권한이 필요한 앱 또는 확장 프로그램을 사용자가 실행하지 못하도록 차단할 수 있습니다. 예를 들어 USB 기기에 연결하거나 쿠키에 액세스하는 확장 프로그램을 차단할 수 있습니다.

  1. 관리 콘솔 홈페이지에서 기기Chrome 관리로 이동합니다.

  2. 앱 및 확장 프로그램사용자 및 브라우저를 클릭합니다.
  3. (사용자만 해당) 그룹에 설정을 적용하려면 다음 안내를 따르세요.
    1. 그룹을 선택합니다.
    2. 설정을 적용할 그룹을 선택합니다. 
  4. 모든 사용자 및 등록된 브라우저에 설정을 적용하려면 상위 조직 단위가 선택된 상태로 두세요. 그렇지 않으면 하위 조직 단위를 선택하세요.
  5. 맨 오른쪽에서 추가 설정
    크롬 콘솔 차단 해제 - keulom konsol chadan haeje
    을 클릭합니다.
  6. 권한 및 URL 옆에서 차단하려는 각 권한을 선택합니다. 권한을 자세히 알아보려면 Chrome 앱 및 확장 프로그램 권한을 참고하세요.
  7. 저장을 클릭합니다.

앱 및 확장 프로그램의 보안 설정을 관리하는 방법

단계별 안내는 방법은 데모 동영상을 참고하세요.

Managing security settings for apps and extensions

관련 주제

  • 관리 콘솔의 앱 및 확장 프로그램 정책
  • Chrome 앱 및 확장 프로그램 정책 설정하기(Windows)
  • Chrome 앱 및 확장 프로그램 정책 설정하기(Mac)
  • Chrome 앱 및 확장 프로그램 정책 설정하기(Linux)

Google 및 관련 마크와 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표입니다.

도움이 되었나요?

어떻게 하면 개선할 수 있을까요?