2012-10-03 4 views
0

ASP.Net MVC3 및 IIS 7.0을 사용하고 있습니다. 내 사이트에서 https (requireSSL = "true")를 통해 양식 인증을 구현했습니다. .ASPXAUTH 쿠키에 대해 만료일 (예 : 5 일)을 설정했습니다. 모두 잘 작동하지만 한 브라우저에서 성공적으로 로그인 한 후에 쿠키 (. 문제없이)를 다른 브라우저 또는 다른 컴퓨터에 복사하고 로그인 및 비밀번호없이 내 사이트에 입력 할 수 있습니다.ASP.NET MVC 3 폼 인증 보안 위험

브라우저 나 로그인 암호를 입력 한 컴퓨터에서만 사이트로 이동할 수 있으며 .ASPXAUTH 쿠키를 복사 한 다른 브라우저에서 액세스 할 수 없습니까? 사전에

감사합니다, Olexiy

+0

사용자가 이미 로그인되어 있고 웹 브라우저를 통해 사이트에 액세스하는 컴퓨터에 액세스하는 것보다 보안 상 위험 할 수 있습니다. 쿠키를 얻을 수있는 권한이 있다면 웹 브라우저에 액세스하여 들어올 수 있습니다. 위험은 쿠키를 복사하지 않는 것으로 보입니다. 쿠키에 대한 만료 기간이 길다는 위험이 있습니다. –

+0

감사합니다. 그러나 예를 들어, Google은 Gmail에이 기능을 구현했습니다. 그들이 어떻게했는지 아십니까? –

+0

Google은 모든 애플리케이션 및 타사 애플리케이션에 OAuth 및 OpenID를 사용합니다. Google 계정에 계속 로그인 할 수는 있지만 쿠키를 복사 할 수 없음을 확인하지 않았습니다. Google 계정에서 쿠키를 복사 할 수 없다면 아마도 @ Zoltan과 같은 기술을 사용하고있을 것입니다. 그러나 I와 Dimitrov는 쿠키를 복사 할 위험이 없다고 말했습니다. –

답변

4

당신은 폼 인증과 함께 할 수 없어. 폼 인증에 관한 전체 개념은 인증 된 사용자를 추적하기 위해 클라이언트의 쿠키에 의존한다는 것입니다. 모든 주요 웹 사이트가 이러한 방식으로 작동하기 때문에 이는 우려 할 사항이 아닙니다. 유효한 쿠키가 있으면 클라이언트 브라우저가 더 이상 중요하지 않습니다. 브라우저를 사용할 필요조차 없습니다. 사이트에 HTTP 요청을 보내고이 요청에 따라 쿠키를 보내는 콘솔 응용 프로그램을 작성할 수 있으며 사용자는 여전히 인증됩니다.

걱정할 필요가 없습니다. 이미 SSL을 사용하도록 설정 했으므로이 쿠키는 암호화되지 않은 채널을 통해 전송되지 않습니다.

+0

해답을 보내 주셔서 감사합니다. ASP.NET MVC3을 사용하여 어떻게 할 수 있는지 알고 계십니까? 어쩌면 사용자 정의 인증을 사용할 수도 있습니다. –

+0

폼 인증 쿠키의 사용자 데이터 부분에 클라이언트 IP 주소, 사용자 에이전트 ...의 해시 값을 저장할 수 있으며 일치하는지 확인할 수있는 사용자 지정 권한 부여 특성을 쓸 수 있습니다. 그 머리말이 가짜 일 수 있기 때문에 100 % booletproof 해결책 아닙니다. –

+0

해답을 보내 주셔서 감사합니다. 예를 들어 Google은 Gmail에이 기능을 구현했습니다. 그들이 어떻게했는지 아십니까? –

0

은 사용자 에이전트의 해시와 클라이언트의 IP 주소를 인증 쿠키에 포함 할 수 있습니다 (자세한 내용은 ASP.Net Store User Data in Auth Cookie을 참조하십시오). 매우 자주 IP 주소를 변경할 수 로밍 네트워크에 사용자를하고, 프록시는 여러 사용자가 하나의 IP를 제공합니다 -

그러나 모바일 브라우저와 프록시를 조심하십시오. 이 두 가지를 믹스하면 나처럼 사용자가 가정용 Wi-Fi에서 모바일 네트워크로, 그런 다음 프록시가있는 기업용 Wi-Fi로 마이그레이션 할 수 있으며 사용자는 매우 자주 로그 아웃됩니다. . 사용자 에이전트 해시를 통합하면 OS 또는 브라우저 업데이트를 설치하는 클라이언트도이를 서명 할 수 있습니다.

대신 두 개의 쿠키가 있어야합니다. 하나는 영구적이며 사용자를 식별하고 다른 하나는 세션 전용이며 사용자가이 방문에 로그인했는지 여부를 추적합니다. 그런 다음 Amazon과 같은 작업을 수행합니다. 돈과 관련된 작업이나 개인 데이터의 변경 /보기 작업에 로그인해야합니다. 사용자가 로그인하면 인증 쿠키도 새로 고칠 수 있습니다.

실제로 말하자면 인증 쿠키를 복사하는 것은 실제로 위험이 적습니다. 특히 제한 시간을 며칠로 설정 한 경우 특히 그렇습니다. 웜/해커/도둑이 인증 쿠키에 액세스 할 수있는 상황에 처한 사람은 이미 더 큰 문제가 있습니다.

+0

답변을 주셔서 감사합니다, Andras. 예를 들어 Google은 Gmail에이 기능을 구현했습니다. 그들이 어떻게했는지 아십니까? - –