-
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는 점점 더 중요한 개념이 되고 있다.
참고자료 📎
- MDN — Window.isSecureContext
https://developer.mozilla.org/en-US/docs/Web/API/Window/isSecureContext - MDN — Secure Contexts
https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts - MDN — Clipboard API
https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API
'웹 개발' 카테고리의 다른 글
웹에서 “실시간”은 어떻게 구현될까? (1) 2026.04.25 Tofu, 모지바케(文字化け), 대체문자(�) — 문자 깨짐 🧐 정리하기 (1) 2026.04.19 브라우저 팝업이 사장된 이유 🦷 (0) 2026.04.05 Shadow DOM이란 ? ❔❓ (0) 2026.02.16 Element.setHTML()이란 ?? (0) 2025.12.21