[네트워크] XSS(Cross Site Scripting) - HttpOnly Flag와 Secure Cookie

해니·2024년 6월 25일

네트워크

목록 보기
4/4
post-thumbnail



XSS(Cross Site Scripting)

  • 서버 측에서 제공되는 스크립트가 아닌 권한이 없는 사용자(이하 해커)가 웹사이트에 스크립트를 삽입하여 의도치 않은 동작을 일으키는 공격
  • 주로 JavaScript로 작성된 스크립트를 통해 공격이 가해진다.



  • 기본적으로 cookieJavaScript를 통해 조회가 가능하다.
    • 클라이언트에 저장되있는 cookie 또한 XSS공격을 통해 탈취가 가능하다.
document.cookie = "Cookie Key:Cookie Value";



Cookie의 대응방안


HttpOnly Flag

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 옵션을 가진 cookieJavaScript를 통해 접근하지 못 하기 때문에, 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)

profile
💻 ⚾️ 🐻 이전했어요..! ➡️ https://dev-haeni.tistory.com/

0개의 댓글