2009-06-05 9 views
5

다른 사람의 세션 변수를 해킹하고 새 섀도 사용자를 만들 수 있습니까?Asp.NET에서 해킹 세션 변수

그런 surprizes를 피하는 일반적인 방법은 무엇입니까?

SSL 인증서 설치 또는 ....

답변

13

짧은 대답은 ... 달려 있습니다.

ASP.NET의 세션은 다양한 방법으로 저장 될 수 있습니다 (InProc/SQL Server/State Server) 등 ... 클라이언트 세션이 유지되는 방법 (쿼리 문자열 값, 쿠키 등)이 있습니다. .)이 답변의 포스터로

당신은 또한 그들에 대한 다른 정보를 저장하는 것, 사용자를 인증하고 세션에서 자신의 이름을 저장 할 때 당신이 할 수

Can we hack a site that just stores the username as a session variable?

한 가지 제안합니다. 예 : UserAgentString, IP 주소 및 다른 IP 또는 UserAgentString이 세션과 상호 작용하려고 시도하면이를 무효화 할 수 있습니다.

+2

한 가지 : 세션에 대해 IP를 저장하는 것은 좋지만 안전한 세션은 아닙니다. 세션 해킹의 일반적인 형태는 동일한 IP 그룹 (즉, 회사 또는 AOL) 내의 누군가에 대한 것입니다. UserAgent에 대한 비슷한 우려 (훨씬 더 높은 공통성으로 만!) – annakata

1

기본적으로 어렵습니다.

일반적으로 세션 쿠키를 훔쳐 다른 컴퓨터에서 재생성하여 세션을 도용합니다. 그러나이 작업을 수행하려면 웹 사이트가 Cross Site Scripting (사용자 입력을 반향시킬 때 Server.HtmlEncode를 사용하여 완화 할 수 있음)에 취약해야합니다. 만약 당신이 취약 해지면 ASP.NET 세션 쿠키는 HTTP 전용으로 표시됩니다. 즉, 브라우저가이를 지원하면 클라이언트 측 스크립트에서 액세스 할 수 없습니다 (Safari는이 설정을 무시하지만).