은행과 같은 보안상의 목적으로 브라우저의 여러 탭을 열어야하는 사용자를 제한해야합니다. 사용자가 브라우저의 단일 탭에서만 작업을 수행하기를 원합니다.작업을 수행하는 동안 브라우저에서 여러 개의 탭을 열 때 사용자를 제한하는 방법은 무엇입니까?
여러 탭을 열려고하면 해당 사용자 ID가 강제로 로그 아웃되어야합니다.
나는 이것을 수행하는 방법을 모른다.
이 작업을 수행하는 데 도움이 될만한 정보를 알려주십시오.
미리 감사드립니다.
은행과 같은 보안상의 목적으로 브라우저의 여러 탭을 열어야하는 사용자를 제한해야합니다. 사용자가 브라우저의 단일 탭에서만 작업을 수행하기를 원합니다.작업을 수행하는 동안 브라우저에서 여러 개의 탭을 열 때 사용자를 제한하는 방법은 무엇입니까?
여러 탭을 열려고하면 해당 사용자 ID가 강제로 로그 아웃되어야합니다.
나는 이것을 수행하는 방법을 모른다.
이 작업을 수행하는 데 도움이 될만한 정보를 알려주십시오.
미리 감사드립니다.
먼저 다른 사용자와 동의해야합니다. 하나 이상의 탭을 열어 놓은 사람이 보안 문제인 경우 문제가 발생합니다. 큰 문제.
그러나 여전히 정말 이렇게 할 경우 :
사용자가 로그인 할 때 :
: 이제// Must be a string
var dateTimeStamp = "" +new Date().getTime();
// This one can be seen by all windows/tabs
localStorage.setItem("timeKey", dateTimeStamp);
// This one can only be seen by the current window/tab
sessionStorage.setItem("timeKey", dateTimeStamp);
, 페이지가로드, 그냥 확인하면 두 값이 일치하는 경우
var localKey = localStorage.getItem("timeKey");
var sessionKey = sessionStorage.getItem("timeKey");
// If there is a key:
if (localKey) {
if (localKey !== sessionKey) {
// Handle multiple login here? Redirect to login page?
// Complain about tab?
}
}
그런 다음 사용자가 로그 아웃하면 두 키를 모두 제거해야합니다.
localStorage.removeItem("timeKey");
sessionStorage.removeItem("timeKey");
경고 :
코딩 이런 종류의 비트 취약하고 의심의 여지가 내가 놓친 가장자리 경우가 있습니다.
추가 신용
그것은 localStorage
에 대한 변경 사항을 모니터링하고 누군가가 새로운 탭에 로그인하면 로그 아웃 다른 모든 페이지를 강제 할 수 있습니다.
이 보안상의 이점은 무엇입니까? – Greg