2016-06-30 1 views
0

Asp.net_SessionId는 시스템에서 기본값으로 생성됩니다. 이 값을 한 브라우저에서 다른 사용자에게 복사 할 때마다 로그인 자격 증명 내의 페이지에 자동으로 액세스합니다.Asp.net 세션 고정 (ASP.NET_sessionid)

사례 : 먼저 한 브라우저 (크롬)에 내 자격 증명을 사용하여 로그인했습니다. 이제는 개인용 모드에서 동일한 브라우저를 엽니 다 (다시 크롬). 이제 로그인 한 브라우저 세션 값을 개인 모드로 복사하고 대시 보드, 프로필, 설정 등과 같은 페이지에 액세스하려고 시도합니다. 여기서는 세션 값을 복사하여 로그인이 필요한 모든 페이지에 액세스 할 수 있습니다.

이 문제를 방지하려면 어떻게해야합니까? 제게 제안 해주세요.

크로스 브라우저에서는 이것을 막을 수 있지만 같은 브라우저에서 막을 수는 없습니다. 내가 시도 무엇

:

나는 여기에 설명 된 기술을 구현하지만, 내 경우에는 작동하지 않습니다. 예, 두 개의 다른 브라우저로 작동하지만 단일 브라우저로는 작동하지 않습니다.

http://www.codeproject.com/Articles/859579/Hack-proof-your-asp-net-applications-from-Session

이 문제를 해결하기 위해 도와주세요.

+0

다른 사람이 비공개 모드로 다른 Chrome 창을 열고 세션 ID를 복사하지 못하게하려면 어떻게해야할까요? –

+0

사용자가 동일한 브라우저 (개인 모드가 아닌)에서 두 개의 탭을 여는 것과 어떻게 다른가요? 너도 그걸 막고 싶어? –

+0

새 탭과 새 창을 여는 것과 너무 다릅니다. 새 탭에서 응용 프로그램은 동일한 쿠키를 사용하고 다른 창에서는 새 쿠키가 생성됩니다. 둘 다 완전히 다릅니다. – user711241

답변

0

이 값을 한 브라우저에서 다른 사용자에게 복사 할 때마다 은 로그인 자격 증명 내의 페이지에 자동으로 액세스합니다.

사용자를 인증하는 방법에 따라 다릅니다. 클래식 ASP 일과 같이 사용자 인증을 추적하기 위해 세션 상태를 사용하는 경우는 사실입니다.

요즘 우리는 토큰이 암호화 된 SSL을 통해 (멤버십 공급자)을 사용하고 모든 곳에서 로그 아웃합니다. 따라서 SSL에서 인증 쿠키를 해킹하기 란 쉽지 않습니다 (불가능하다고 말하지 않습니다).

ASP.Net Web Form 및 Classic ASP에서 사용하던 것처럼 Session State를 사용할 필요가 없습니다. 게다가 세션 상태를 직접 사용하는 것은 ASP.Net MVC에서 나쁜 습관이됩니다.

SSL을 통해 ASP.Net Identity 또는 양식 인증을 사용하는 경우 최종 줄은 걱정하지 않습니다. 당신이 그것을 사용하지 않았다면, 당신은 확실히 그것을 사용하는 것을 고려하고 싶다.

+0

제안 해 주셔서 감사합니다. SSL을 통해 ASP.Net Identity 또는 양식 인증에 대한 간략한 아이디어/코드를 제공해주십시오. – user711241

+0

제안한대로 ASP.Net ID를 구현했지만 행운은 없습니다. 그것은 암호화 된 값을 가진 .ASPXAUTH 쿠키를 만듭니다. 그러나이 값을 한 브라우저에서 다른 브라우저로 복사하면 사용자는 로그인없이 사이트에 액세스 할 수 있습니다. – user711241

+0

쿠키 기반 인증의 개념은 누군가가 콘솔 애플리케이션 *에서도 어디서든 사이트에 액세스 할 수있는 유효한 쿠키를 가지고있는 경우입니다. 은행을 포함한 모든 주요 웹 사이트가 그렇게 작동합니다. SSL을 통해 쿠키를 보내면 걱정할 위험이 없습니다. – Win