2014-04-18 2 views
0

나는 PHP에서 세션에 대한 간단한 질문이 있습니다.

내가 웹 서버를 가지고 내가

$_SESSION['user_login'] = 1; 

이 세션은 다른 사용자와도 공유 같은 세션을 사용하는 경우?
의미 :

사용자 A가 세션을 로그인하고있는 경우 1;
이제 사용자 B가 로그인을하고 자신의 세션이있다 그래서 1

:

userA--->Session=1 
userB--->Session=1 

이제 사용자 A가 로그 아웃을하고 난
unset($_SESSION['user_login']);

문제로 세션을 파괴하는 것은 :
the session of userB is still at 1?? 또는 그의 세션이 끝났습니까?
세션이 모든 스레드 스택에 있는지 또는 모든 스레드와 공유되는지는 이해할 수 없습니다.

+0

'$ S_SESSION'은 아마도'$ _SESSION'이어야합니다. – kelunik

+0

고마워 ... 고쳤다. –

답변

6

PHP 세션에서 사용자 당 입니다. 각 사용자에게는 세션을 식별하는 고유 한 세션 ID가 할당됩니다. 해당 세션 ID를 가진 사용자 만이 세션 ID와 연관된 세션 정보에 액세스 할 수 있습니다. the manual에서

:

고유 ID, 소위 세션 ID를 할당 웹 사이트에 액세스하는 방문자. 이것은 사용자 측의 쿠키에 저장되거나 URL에 전파됩니다.

세션 지원을 사용하면 $ _SESSION 수퍼 글로벌 배열의 요청간에 데이터를 저장할 수 있습니다. 방문자가 귀하의 사이트에 액세스하면 PHP는 자동으로 (session.auto_start가 1로 설정된 경우) 또는 특정 세션 ID가 요청과 함께 전송되었는지 여부 (session_start()를 통해 명시 적으로)를 확인합니다. 이 경우 이전에 저장 한 환경이 재생성됩니다.

다른 악의적 인 사용자가 다른 사용자의 세션을 어떻게 도용 할 수 있는지 보려면 session hijacking을 참조하십시오.