본문 바로가기

Security

Cookie HTTP only 옵션과 XSS

사실상 우리는 쿠키 없이는

아무것도 못하는 수준이 되어버렸다

 

소셜 로그인부터 시작해서 인강 사이트 로그인까지

쿠키설정 안해놓으면 사실상 인터넷을 못한다고 보면된다.

 

그런 만큼 쿠키 관련해서는 기초적인 보안부터 신경쓰는것이 당연할 지경이다.

 

그런데 쿠키는 생각보다 굉장히 쉽게 접근이 가능하다

 

지금 당장 크롬 개발자도구 콘솔에서 

document.cookie 를 입력하고 엔터를 쳐보라

쿠키값이 그대로 나오게 된다

 

이렇게 자바스크립트 코드로 타인의 웹페이지에서 장난질을 치는 행동을 

Cross Site Scripting, XSS라고 부른다.

 

그럼 이 장난질을 못치게 막는 방법들이 있을 것인데

그 대표주자가 'Http Only' 옵션을 주는 것이다.

즉 나쁜사람들이 저렇게 콘솔 열어서 장난치게 하지 말고 

http 통신할때만 접근할수 있도록 권한을 걸어버리는 것이다.

 

또는 node.js express의경우 helmet이란 라이브러리를 사용해도 된다

 

https://www.npmjs.com/package/helmet

 

helmet

help secure Express/Connect apps with various HTTP headers. Latest version: 7.0.0, last published: 4 months ago. Start using helmet in your project by running `npm i helmet`. There are 3814 other projects in the npm registry using helmet.

www.npmjs.com

 

 Node.js 나 다른 프레임워크를 이용해 백엔드쪽을 만지다 보면

Http Only옵션을 줄수 있는 부분이 꽤 자주 나온다.

 

그때 이 옵션이 무슨 뜻인지 이해하고 넘어가야 좋다고 생각한다

제일 기초적인 보안인만큼, 면접 질문에도 꽤 단골이라고 한다.

 

내가 기억나는 해당 해킹 관련한 사건이 최근에 있었는데
엠엘비파크라는 커뮤니티에서

 

이 기초적인 XSS 보안을 신경쓰지 않아 벌어진 사건인데 

해당 글을 참고해보면 좋을듯 하다

 

https://www.google.com/search?q=%EC%97%A0%ED%8C%8D+XSS+%ED%95%B4%ED%82%B9&oq=%EC%97%A0%ED%8C%8D+XSS+%ED%95%B4%ED%82%B9&aqs=chrome..69i57j33i160l4.4288j0j7&sourceid=chrome&ie=UTF-8 

 

🔎 엠팍 XSS 해킹: Google 검색

 

www.google.com