2009-08-04 7 views
2

ASP.NET 응용 프로그램에서 폼 인증을 사용하고 있으며 이미 로그인 한 후에 인증 쿠키 내용을 복사 할 수 있다는 것을 깨달았습니다. 수동으로 다른 인스턴스에 쿠키를 만듭니다. 그러면 다른 브라우저에서 응용 프로그램이 자동으로 로그인합니다.폼 인증 쿠키가 브라우저 전체에서 사용되지 못하도록 함

나는 이것을 방지 할 수있는 방법이 있는지 알고 싶습니다 (인증 티켓을 어떻게 든 좋아하는 브라우저 인스턴스와 비슷합니다). 이제 누군가가 쿠키를 사용하고 다른 컴퓨터에서 사용하여 로그인이나 암호가 필요없는 동일한 계정에 액세스하십시오.

답변

1

할 수있는 일이별로 없습니다. 제프 프로 시즈 (Jeff Prosise)는 여기 흥미로운 기사를 가지고 있습니다. 여기에서 그는 tries creating an HttpModule입니다.

... 사용자 에이전트 헤더 최후의 라인이다 : 당신이 그 효과가 없습니다 볼 수 있습니다 그러나

. 그리고 User-Agent 헤더를 쉽게 스푸핑 할 수 있습니다. 은 User-Agent 헤더가 인 경우 세션 ID의 유효성을 검사한다는 것을 알고 있습니다.

개인적으로 나는 그 위에 잠을 자지 않았습니다.

+0

좋은 기사, 나는 그것을 줄 것이다. 그것이 문제를 완전히 해결하지는 못하더라도, "나쁜 녀석들"을 위해 조금 더 열심히 노력해야 할 가치가 있습니다. ;-) –

0

사용자 에이전트를 가져 와서 쿠키에 넣으시겠습니까? 분명히 쿠키가 암호화 된 경우에만 작동합니다.

예 :

+0

악의적 인 사용자가 동일한 사용자 에이전트가있는 브라우저를 사용하는 것을 어떻게 막을 수 있습니까? –

+0

쿠키의 콘텐츠는 암호화 된 FormsAuthenticationTicket 개체이므로 콘텐츠 자체에 대한 제어가 없습니다. –

0

아니요, 브라우저는 단일 브라우저 인스턴스를 정확히 찾아내는 데 사용할 수있는 고유 식별자를 보내지 않습니다. UserAgent 문자열을 저장하고 사용자가 신원 도용의 위험을 줄이기 위해 페이지를 요청할 때마다이를 확인하지만 그 오류를 제거하지는 못합니다.

정말 안전한 연결을 위해 SSL을 사용해야합니다.

+0

하지만 SSL을 사용하더라도 브라우저는 쿠키의 콘텐츠를 볼 수 있으며 복사 할 수도 있습니다 ... 안 그래? –

+0

SSL에는 브라우저가 연결을 시작할 때 발급되는 자체 세션 ID가 있으며 쉽게 복사 할 수 있도록 쿠키에 저장되지 않습니다. – Guffa