[javascript] JavaScript를 사용하여 HttpOnly 쿠키를 읽는 방법

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 쿠키를 사용합니까?


답변

방법 중 하나는 safari 웹 검사기를 사용하는 것입니다. 저장소 탭에서 httpOnly 여부에 관계없이 모든 쿠키를 볼 수 있으며 쿠키 Command + C를 선택하여 복사 할 수 있습니다.

문자열이 있으면 쿠키 파서 또는 일반 자바 스크립트로 쉽게 다시 구문 분석 할 수 있습니다.

여기에 이미지 설명 입력


답변