사용자가 HTTPS를 통해 클라이언트 인증서를 사용하여 인증하는 ASP.NET 응용 프로그램에서 작업하고 있습니다. 우리 사용자는 IE7 만 사용하고 있습니다.사용자의 세션이 만료되면 브라우저에서 SSL 상태를 지우는 방법은 무엇입니까?
클라이언트 인증서가 성공적으로 인증 된 후에는 프로세스가 닫히거나 사용자가 SSL 캐시를 수동으로 지울 때까지 브라우저의 SSL 캐시에 남아 있습니다. 우리는 사용자가 로그 아웃하거나 세션이 만료 될 때마다 SSL 캐시를 지워서 시스템의 보안을 향상시킬 수 있기를 원합니다.
고객이 이미 스마트 카드를 사용하여 시스템에 액세스합니다.이 시스템은 카드를 클라이언트 컴퓨터에서 제거하면 자동으로 인증서를 언로드하지만 브라우저 캐시를 전혀 지우지는 않습니다. 따라서 다른 사용자가 정품 사용자와 동일한 컴퓨터에 액세스 할 수 있습니다.
나는 자바 스크립트에서 실제 캐시 청소하는 방법을 발견했습니다
document.execCommand ("ClearAuthenticationCache을");
사용자가 명시 적으로 로그 아웃 할 때 완벽하게 작동합니다. 사용자가 다시 로그인 할 수있게하기 전에 클라이언트에서 스크립트를 실행할 수 있기 때문입니다.
참고 : IE7에서는 웹 서버에서 HTTP 연결 유지를 사용하지 않도록 설정 한 경우에만 프로그래밍 방식으로 캐시를 지울 수 있습니다.
여기 까다로운 점이 있습니다. 클라이언트의 세션이 만료되면 사용자가 다시 로그인하기 전에 브라우저에서이를 처리 할 수있는 방법을 모르겠습니다. 페이지를 서버에서 실행하기 전에 상태를 지우고 새 인증서를 선택해야하기 때문에 로그인 페이지가 표시 될 때 상태를 지울 수 없습니다.
아이디어가 있으십니까? 문제의 길이에 대한 사과,하지만 배경이 중요합니다.
명시 적으로 "로그 아웃"하는 방법은 무엇입니까? 이것이 클라이언트 측의 "ClearAuthenticationCache"에 대한 JS 호출 인 경우 PowerUser는 해당 호출을 우회하여 클라이언트 측 코드를 해킹 할 수 있습니다. –
Laurent의 질문에 –
우리는 서버에 로그 아웃합니다. 보통의 FormsAuthentication.SignOut() 메소드는 클라이언트 상호 작용이 없습니다. – Sam