JavaScript로 보안 쿠키를 읽을 수있는 방법이 있습니까?
나는 그것을 사용하여 그것을 시도했고 보안 쿠키 및 HttpOnly 플래그에 대한이 기사에서document.cookie
볼 수있는 한 보안 쿠키에 액세스 할 수 없습니다.
누구든지 해결 방법을 제안 할 수 있습니까?
답변
HTTPOnly 플래그가 설정 되면 브라우저 마다 다른 보안 조치를 사용할 수 있습니다. 예를 들어 Opera와 Safari는 자바 스크립트가 쿠키에 쓰는 것을 막지 않습니다. 그러나 모든 주요 브라우저의 최신 버전에서는 항상 읽기가 금지되어 있습니다.
그러나 더 중요한 것은 왜HTTPOnly
쿠키 를 읽고 싶 습니까? 개발자 인 경우 플래그를 비활성화하고 xss에 대한 코드를 테스트하십시오. 가능하면이 플래그를 비활성화하지 않는 것이 좋습니다. HTTPOnly
플래그와 “보안 플래그”항상 설정해야합니다 (쿠키를 강제로 HTTPS에서 확인할 수 있습니다).
당신이 경우 공격자 , 당신은 할 세션을 납치 . 그러나 HTTPOnly
플래그 에도 불구하고 세션을 탈취하는 쉬운 방법이 있습니다. 세션 ID를 몰라도 세션을 계속 탈 수 있습니다. MySpace Samy 웜 이 바로 그렇게했습니다. XHR 을 사용하여 CSRF 토큰 을 읽고 승인 된 작업을 수행했습니다. 따라서 침입자는 로그인 한 사용자가 할 수있는 거의 모든 작업을 수행 할 수 있습니다.
사람들은 HTTPOnly
깃발 에 너무 많은 믿음을 가지고 있으며 , XSS 는 여전히 악용 될 수 있습니다. 민감한 기능 주변에 장벽을 설정해야합니다. 변경된 비밀번호와 같은 경우에는 현재 비밀번호가 필요합니다. 관리자가 새 계정을 생성 하려면 XHR 로 쉽게 우회 할 수없는 CSRF 방지 기술인 captcha가 필요합니다 .
답변
HttpOnly 쿠키의 요점은 JavaScript로 액세스 할 수 없다는 것입니다.
스크립트가이를 읽는 유일한 방법 (브라우저 버그 악용 제외)은 쿠키 값을 읽고 응답 내용의 일부로 다시 에코하는 협력 스크립트를 서버에 두는 것입니다. 그러나 그렇게 할 수 있고 그렇게 할 수 있다면 왜 처음에 HttpOnly 쿠키를 사용합니까?