JavaScript로 작성된 스크립트를 통해 공격이 가해진다.cookie는 JavaScript를 통해 조회가 가능하다.cookie 또한 XSS공격을 통해 탈취가 가능하다.document.cookie = "Cookie Key:Cookie Value";
Set-Cookie: <cookie-name>=<cookie-value>; HttpOnly
HTTP 통신외에는 Cookie에 접근이 불가능하도록 하는 것.HttpOnly Attribute를 가진 쿠키는 클라이언트에서 JavaScript를 통한 접근이 금지된다.📝 SPA(Single Page Application)
근래의 웹페이지들은 편의성,속도등을 위해SPA(Single Page Application)로 구현이 되어지고 있다. 이때 SPA는 한 페이지에서 많은 기능들을 수행하기위해AJAX(Asynchronous JavaScript And XML)를 통해 서버와 통신한다.httpOnly옵션을 가진cookie는JavaScript를 통해 접근하지 못 하기 때문에,httpOnly = false로 값을 설정해야 한다.
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
Secure 접미사를 사용해서 쿠키를 생성하게 되면 브라우저는 HTTPS 통신에서만 쿠키를 전송한다.HTTPS 프로토콜을 사용하여 데이터를 암호화하여 서버에 넘겨주게 되면, 해커들이 쿠키를 탈취해도 암호화가 되어있어 정보를 알아낼 수 없다.💡 HTTPS(HyperText Transfer Protocol Secure)
HTTPS는 기존의HTTP프로토콜에SSL(Secure Socket Layer)또는TLS(Transport Layer Security)라는 보안 프로토콜을 추가하여 구현된다.SSL/TLS는 데이터를 암호화하고, 서버와 클라이언트의 신원을 인증하여 안전한 통신을 가능하게 해준다.
출처
Cookie와 로그인 🍪(HttpOnly와 Secure Cookie 그리고 withCredentials)
[Network] Cookie - httpOnly / secure 차이점
해킹 알려줄게 11화: XSS(Cross Site Scripting)