2013-09-03 2 views
0

사용자가 로그 오프하고 이전 세션 쿠키 (슬라이딩 시간 창 포함)가 재생되고 사용자 코드로 요청 된 페이지로 코드가 바로 이동하는 경우가 발생합니다. 우리는 서버에서 세션 상태를 유지 관리하지 않습니다. 이 Asp.Net은 인증을 형성합니다.Asp.Net 폼 인증 재생 공격

이 유일한 해결책은 사용자의 로그 상태를 추적하기 위해 서버에 열을 추가하는 것입니다. 진짜 어렵지는 않지만 코드, db 및 배포가 필요합니다.

이 문제를 해결하는 가장 좋은 방법입니까? 어쨌든 우리는 코드를 해독해야하므로 클라이언트 요청 ip 및 기타 내용을 쿠키에 추가 할 수 있습니다. 그러나 현재의 스푸핑은 클라이언트 시스템과 세션을 재사용하는 것입니다.

의견이 있으십니까? 사전에

감사 활동에 대한 확인

bille

자바 스크립트 코드 -> 내가 사용자가/아웃 상태와 활동의 타임 스탬프를 로그인 추적하여이 문제를 해결 결국

$j(document).ready(function() {

  /****************************************************************** 
      Auto-logout after the user's session times out 
      ******************************************************************/ 

      var timeOut = (_TIMEOUT - 5) * 60; 
      var setTimeout = function() { 
       $j(".session-timeout").stopTime().oneTime(timeOut + "s", function() { 
        $j(this).show(); 
        $j(this).oneTime("300s", function() { 
         window.location = $j(this).find("a.logout").attr("href"); 
        }); 
       }); 
      }; 
      $j(".session-timeout a.refresh-session").click(function() { 
       NextGen.CHS.UtilitiesWebService.RefreshSession(
        function() { 
         $j(".session-timeout").fadeOut(); 
         setTimeout(); 
        }, 
        function() { 
        } 
       ); 
      }); 

      setTimeout(); 
     }); 

+0

사용자가 로그 오프하면 현재 페이지에서 포스트 백이 수행됩니까? 아니면 로그 오프 페이지로 이동합니까? 재생 공격으로, 별도의 컴퓨터에있는 침입자가 동일한 컴퓨터를 공격하고 있다는 것을 알 수 있습니까? –

+0

두 가지 방법이 있습니다. 세션을 무효화하는 ajax 호출로 이어지는 클라이언트 시간 초과. 로그 아웃 버튼을 클릭하면 정기적으로 다시 게시됩니다. – weidson

+0

또한 공격은 동일한 컴퓨터에서 발생합니다 (IP/MAC 스푸핑 가능성이 있음). 로그인 한 사용자가 로그 아웃하고 시스템을 다른 사용자에게 남겨 둡니다. – weidson

답변

0

로그 아웃 . 재생 된 세션이 수신되면 우리는 여전히 양식 티켓을 해독하고 유효한 "세션"정보를 찾습니다. 이것은 사용자를 식별하고, 로그 아웃했는지 여부를 확인하고, 그렇다면 페이지에 로그인하도록 리디렉션합니다.

사용자가 로그 아웃하지 않고 브라우저를 종료하는 경우 비활성 사용자를 로그 아웃하는 사용자 테이블을 스윕하는 sql 작업에서 활동 시간 스탬프가 사용됩니다.

weidson