2010-01-20 5 views
3

ASP 세션 ID 쿠키를 HttpOnly로 표시하려고하지만 작동하는지 확인할 방법을 찾지 못하는 것 같습니다. OS : 다음과 같이 나는이에서를 시도하고 환경은 HTTP와 같은 쿠키를 표시하기 위해기본 ASP : ASPSESSIONID * 쿠키가 안전한 것으로 표시되었는지 확인하는 방법은 무엇입니까?

만, 내가 MS KB

을 따라 ASP 3 (클래식 ASP) : 6 ASP 버전 : 윈도우 서버를 IIS 2003

우리 건축가의 제안에 따라, 이것이 작동하는지 테스트하려면 javascript document.cookie가 ASPSESSIONID * 쿠키를 읽을 수 없어야합니다. 내 문제는 javascript : alert (document.cookie)는 여전히 암호화 된 것으로 보이지만 ASPSESSIONID * 쿠키를 에코합니다.

또한 Response.AddHeader "Set-Cookie"를 통해이 작업을 시도했지만 ' 이 헤더에 대해 모든 쿠키를 표시 할 값을 지정하거나 ASP 세션 ID 쿠키를 HttpOnly로 지정하십시오. Help !!!

답변

3

귀하의 건축가가 javascript의 쿠키에 액세스하는 것과 관련하여 적절하지 않다고 생각합니다.

페이지에서 실행중인 javascript가 HTML의 나머지 데이터에 액세스하는 javascript 이상으로 쿠키에 액세스하는 것을 중지 할 이유가 없습니다.

쿠키에 보안 한정자를 추가하는 목적은 안전하지 않은 요청으로 쿠키가 전송되는 것을 방지하기위한 것입니다.

https을 사용하여 클라이언트가 연결될 때 설정되는 Oridinarily 쿠키는 일반 서버 http을 사용하여 동일한 서버에 요청할 때 계속 전송됩니다. Set가 클라이언트에게 후속 요청에서만 전송되어야 함을 나타내는 경우 보안 한정자를 사용하여 쿠키를 표시합니다. 이러한 요청이 https을 사용하는 경우에만 해당합니다.

따라서 설정을 테스트하려면 fiddler 사본을 얻으십시오. https를 통해 서버를 실행 한 다음 동일한 브라우저 세션에서 http만으로 동일한 위치에 도달합니다. Fiddler는 서버로가는 두 번째 요청을 표시해야하며 ASPSESSION 쿠키가 없어야합니다.

3

SECURE와 HTTPONLY 사이에 혼란스러워 보입니다. 이러한 내용은 다릅니다. 참조한 MS KB 기사는 SECURE를위한 것입니다.

쿠키를 보안 설정하면 HTTP를 통해 ASP 세션 ID를 보내는 IIS/브라우저가 중지됩니다.

HTTPONLY 쿠키를 설정하면 스크립트 (JavaScript)가 대부분의 브라우저에서 값에 액세스하지 못하게됩니다.

sessionID 쿠키에 HTTPONLY를 설정하는 매우 좋은 이유가 있습니다. 세션 도용으로 이어질 수있는 사용자 sessionID 쿠키 도용을 방지하는 데 도움이됩니다. 이것이 주요 브라우저가 구현 한 이유입니다.

+0

비트

<% Dim AspSessionCookie AspSessionCookie = Request.ServerVariables("HTTP_COOKIE") If len(AspSessionCookie) > 0 Then AspSessionCookie = "ASPSESSIONID" & Split(AspSessionCookie,"ASPSESSIONID")(1) If InStr(1,AspSessionCookie,";") then AspSessionCookie = Split(AspSessionCookie,";")(0) End If Response.AddHeader "Set-Cookie", AspSessionCookie & ";HttpOnly" Else Response.redirect(Request.ServerVariables("URL")) End If 

%,하지만 난 아주 명확하게 Http 만 같은 고전적인 ASP 세션 ID를 표시 할 수있는 방법을 찾고 있었다. 내 질문을 다시 읽으십시오.어쨌든, 그것이 나온 것처럼, 고전적인 ASP에서 이것을 할 수있는 방법이 없습니다 – dotnetguy

+0

아마도 조금 늦은 것 같습니다. 오해의 소지가있는 응답을 우연히 만난 다른 사람의 의견을 덧붙였습니다. –

4

"새로운"PCI 준수 항목 때문에이 문제가 발생했습니다. 그것은 조금 서투른하지만이 작동하는 것 같다 : 말>

+0

한 번 해볼만한 가치가 있습니다. 피들러에서 응답을 보았습니까? – dotnetguy

+0

다음은 web.config : https://stackoverflow.com/q/36045022/901156을 사용하여 수행하는 방법입니다. 404 오류가 발생하지 않는 한 훌륭하게 작동합니다. 그걸 알아 내려고 아직도 노력하고있어. – rdev5

관련 문제