2012-08-12 3 views
3

websockets 쿠키에서 내 세션 ID를 노출해야합니다.Javascript : 쿠키에서 세션 ID를 읽습니다.

내가 조금 검색 내가하여 쿠키에 액세스 할 수 있어야 것으로 나타났습니다 :

console.log(document.cookie); 

불행히도이 작동하지 않는 이상 document.cookie를 빈 문자열도 자체를 크롬이 들어 나에게 쿠키를 보여줍니다 또한 인증이 작동합니다.

크롬이 자바 스크립트의 쿠키를 숨길 수 있습니까?

답변

6

서버가 으로 세션 쿠키를 보내도록 구성된 경우 이런 일이 발생할 수 있습니다. 이렇게하면 JS와 같은 클라이언트 측 스크립팅 언어에서 쿠키가 보이지 않거나 액세스 할 수 없게됩니다.

구체적 기능 요구 사항을 충족 시키려면 서버를 재구성하지 말고 서버를 재구성하거나 다른 방법을 찾아보십시오. (물론 HttpOnly 플래그가없는) 커스텀 쿠키를 설정하거나, 서버 사이드 뷰 기술로 JS 변수 나 일부 HTML 엘리먼트의 속성으로 현재 세션 ID를 동적으로 출력하여 JS가 HTML DOM을 가로 질러 액세스 할 수있게한다. .

+0

안녕하세요, 쿠키가 {httpOnly : false}가 특급에서 작동하지 않는 이유를 찾는 데 시간이 필요합니다. 그러나 당신의 대답은 논리로 들립니다. httpOnly 플래그를 false로 변경하면 단점이 있습니까? – bodokaiser

+0

정말 'HttpOnly'인지 아닌지는 동일한 Chrome 쿠키 표에서 확인할 수 있습니다. 서버 구성과 관련하여 언제든지 새로운 질문을하십시오. 나는 적어도 "익스프레스"서버에 대해 들어 본 적이 없다. 단점은 성공적인 XSS 공격의 위험을 증가시킬 뿐이지 만 다시 표시하는 동안 사용자가 제어하는 ​​데이터를 HTML에서 제대로 이스케이프하면 두려워 할 필요가 없습니다. – BalusC

+0

확인. 내가 알아야 할 모든 것. Byside Express는 node.js 용 프레임 워크와 같은 senetra (RoR)입니다. – bodokaiser

관련 문제