2012-02-01 9 views
0

로그 아웃 성공 페이지가로드 될 때 브라우저 창/탭을 닫으려는 웹 사이트에서 작업하고 있습니다. 브라우저에서 '뒤로'버튼을 누르면 로그 아웃 워크 플로우가 끝난 후 모든 기밀 정보가 표시된 이전 페이지가 표시되기 때문에이 작업을 수행하고 있습니다. 해당 서블릿에서 세션을 지 웠기 때문에 사용자는 로그 아웃 후에 아무 것도 할 수 없지만 데이터 표시는 상당히 우려됩니다. 나는 코드 (Logout.jsp) 이하로 사용하고이 pupose를 들어 크롬에서 자바 스크립트가 작동하지 않습니다.

-

<body onload="self.close();"> 
<center> 
    You have been successfully logged out.<br> 
</center> 
</body> 

문제는 위의 코드는하지만 IE에서 잘 작동한다는 것입니다 그것은 파이어 폭스와 크롬에서 작동하지 않습니다. Chrome 용 자바 스크립트와 관련된 모든 설정을 확인했으며 브라우저와 정확히 동일합니다.

또는 내역을 삭제하려고했습니다. 이 목적을 위해 나는 어떤 웹 사이트에서 찾은 코드 아래에 사용했다. -

<body onload="window.history.forward(0)"> 
<center> 
    You have been successfully logged out.<br> 
    Kindly close the browser for security reasons.<br> 
</center> 
</body> 

그러나이 코드는 브라우저에서 작동하지 않습니다.

모든 종류의 도움을 주시면 감사하겠습니다.

---------------- UPDATE --------------- 두 번째 옵션에 대한

(즉, 삭제 역사) 많은 구글과 일 후에, 나는 그것을 일하게 만들 수 있었다. 해결책은 다음과 같습니다.

사용자가 탐색 페이지 1 -> page2를 따르는 경우. 그리고 당신은 다시 PAGE1로 이동 한 후 PAGE1에 코드 아래에 추가 페이지 2에서 사용자를 중지하려면 -

<body onload="window.history.forward();"> 
    //rest of the body 
</body> 

나는 IE에서 테스트하고 완벽하게 작동 발견했다.

이제는 Chrome에서 스크립트가 작동하지 않는 이유에 대한 근본적인 문제가 남아 있습니다.

답변

1

하지 마십시오. 세션이 있는지 확인하십시오. 로그인하지 않은 경우 로그인 페이지로 자동 전송됩니다. 그렇게하면 사이트가 해킹 한 증거가됩니다. 왜냐하면 방화범이나 콘솔을 없앨 수 있기 때문입니다. 탭을 닫으면 바로 데이터를 볼 수 있습니다.

+0

각 서블릿의 시작 부분에서 세션의 존재를 확인하고 있습니다. 세션이 존재하지 않으면 오류 페이지가 표시됩니다. 이제 뒤로 버튼을 누르면 이전 페이지의 데이터가 표시되지만 페이지를 새로 고침하면 오류 페이지로 이동합니다. –

+0

세션에서 로그 아웃 한 날짜를 보호하는 것보다 안전하며, 세션이 설정되어 있고 현재 날짜보다 작은 경우 오류 페이지로 보냅니다. 로그인 페이지를 제외한 모든 페이지에서이 작업을 수행하고 로그인하면 로그 아웃 날짜의 세션을 삭제합니다. 다른 해결책은 쿠키를 보관하는 것입니다. 또는 로그 아웃 할 때 리디렉션이있는 페이지로 이동하십시오. 이렇게하면 뒤로 버튼을 누를 때마다 자동으로 보내 지므로 로그 아웃 한 기록 된 상태에 도달하지 못합니다. – khael

+0

데이터 가시성 문제가 해결되었습니다 (적어도 IE의 경우). 위의 업데이트를 참조하십시오. 이제는 IE에서 완벽하게 작동 할 때 동일한 자바 스크립트가 Chrome 및 FireFox에서 작동하지 않는 이유가 여기에 있습니다. 내가 누락 된 설정이 필요합니까? –

관련 문제