쿠키와 보안
About web, 보안
2024/08/23
XSS(Cross-Site-Scripting) 공격
XSS는 웹의 취약점을 이용한 공격으로, 피공격자가 모르게 악의적인 스크립트를 웹 페이지에서 실행하는 공격 방식입니다.
예를 들면, Webview는 외부(모바일 앱)에서 주입한 JS코드를 Webview 내에서 실행하는 기능을 제공합니다.
만약 아래와 같은 코드를 실행하도록 한다면 어떨까요?
(function () {
const cookies = document.cookie;
const sessionData = Object.keys(sessionStorage);
window.ReactNativeWebView.postMessage(
// RN 웹뷰 객체 메서드
JSON.stringify({
cookies,
sessionData,
})
);
})();
피공격자는 본인도 모르게 자신의 쿠키와 웹 스토리지 정보를 웹뷰 외부로 보내게 됩니다. 이런 공격을 예방하려면 기본적으로 쿠키나 웹 스토리지에는 민감한 정보를 저장해서는 안됩니다.
HttpOnly
추가적인 XSS 예방 대책은 쿠키의 HttpOnly
속성입니다. 서버에서 보내는 쿠키에 HttpOnly
플래그를 설정하면
브라우저의 document.cookie
API로 해당 쿠키에 접근할 수 없게 되며, 서버로 보내 는 요청에만 포함됩니다.
Secure
와 HttpOnly
는 민감한 쿠키를 안전하게 보호하기 위한 권장 설정입니다.