ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • window.isSecureContext — 브라우저가 “안전한 페이지”인지 판단하는 방법 👍
    웹 개발 2026. 5. 11. 00:02

    웹 개발을 하다 보면 이런 경험을 한 번쯤 한다.

    • 로컬에서는 잘 되던 코드가 서버에 올리니 동작하지 않는다
    • 특정 Web API가 undefined로 나온다
    • 콘솔에 보안 관련 경고가 나타난다

    예를 들어 Clipboard API를 사용한다고 해보자.

    navigator.clipboard.writeText("hello");
    

    이 코드는 어떤 환경에서는 정상적으로 동작하지만 HTTP 환경에서는 아예 실행되지 않는 경우가 있다.

     

    그 이유는 브라우저가 현재 페이지가 “안전한 환경인지” 판단하기 때문이다.

     

    그리고 이 상태를 확인할 수 있는 API가 바로 window.isSecureContext이다.

     

    Secure Context란 무엇인가

    Secure Context는 브라우저가 정의한 개념으로, 신뢰할 수 있는 보안 환경에서 실행되는 페이지를 의미한다.

     

    간단히 말하면 다음과 같다.

    Secure Context = 브라우저가 안전하다고 판단한 실행 환경

     

    브라우저는 보안상 위험한 API가 HTTP 페이지에서 실행되는 것을 막기 위해 이 개념을 도입했다.

     

    🌙 예를 들어 이런 API들은 대부분 Secure Context에서만 동작한다.

    • Clipboard API
    • Service Worker
    • Web Bluetooth
    • Geolocation
    • WebRTC

    이 API들은 사용자 정보나 하드웨어에 접근할 수 있기 때문에 보안이 보장된 환경에서만 사용하도록 제한되어 있다.

     

    어떤 환경이 Secure Context일까?

    일반적으로 다음과 같은 환경은 Secure Context로 간주된다.

    HTTPS 페이지

    https://example.com
    

    가장 대표적인 secure context다.

     

    localhost

    흥미롭게도 다음 주소도 secure context로 취급된다.

    http://localhost
    

    개발 환경을 고려해 브라우저가 예외적으로 허용한다.

     

    loopback 주소

    http://127.0.0.1
    

    이 역시 로컬 개발 환경이기 때문에 secure context로 인정된다.

     

    Secure Context 여부 확인하기

    현재 페이지가 secure context인지 확인하는 방법은 매우 간단하다.

    바로 window.isSecureContext를 사용하면 된다.

    console.log(window.isSecureContext);

    결과는 boolean으로 true 혹은 false이다.

    네이버에서 콘솔해봄

    • true → 보안 환경 (HTTPS 등)
    • false → 비보안 환경 (HTTP 등)

     

    실제 활용 예제

    Secure Context가 필요한 API를 사용할 때 다음과 같이 조건을 체크할 수 있다.

    if (window.isSecureContext) {
      navigator.clipboard.writeText("Hello world");
    } else {
      console.warn("Clipboard API requires a secure context.");
    }
    

    이렇게 하면 HTTP 환경에서도 에러 없이 안전하게 처리할 수 있다.

     

    왜 이런 제한이 필요할까?

    웹 플랫폼은 점점 더 강력해지고 있다.

    브라우저는 이제 다음과 같은 기능까지 접근할 수 있다.

    • 카메라
    • 마이크
    • 위치 정보
    • 블루투스
    • 클립보드

    만약 이런 기능들이 HTTP 환경에서도 자유롭게 사용된다면 네트워크 공격이나 데이터 탈취가 훨씬 쉬워질 수 있다.

     

    그래서 브라우저는 “보안이 보장된 환경에서만 위험한 API를 허용한다” 라는 정책을 채택했고,
    그 기준이 바로 Secure Context다.

     

    요약하자면.... 🍉

    window.isSecureContext는 현재 웹 페이지가 보안 환경인지 확인하는 API다.

     

    핵심 개념은 다음과 같다.

    • Secure Context는 브라우저가 신뢰하는 실행 환경
    • 대부분 HTTPS 환경에서만 활성화
    • 일부 Web API는 Secure Context에서만 사용 가능
    • window.isSecureContext로 확인 가능

    현대 웹에서는 HTTPS가 사실상 기본이 되었기 때문에 Secure Context는 점점 더 중요한 개념이 되고 있다.

     

    참고자료 📎

Designed by Tistory.