2012-06-16 4 views
1

ssl 세션 ID를 가져와 동일한 사용자임을 알고 싶습니다. $_SERVER['ssl_session_id']을 시도하면 아무 것도 반환되지 않으며 print_r($_SERVER)$_SERVER['ssl_session_id']이 표시되지 않습니다.PHP ssl 세션 ID 받기

내가 ssl 세션 ID가 필요한 이유는 로그인 시스템을 만들고있어 세션이 고정 공격을 통해 사용될 수 없도록하고 싶습니다. auth 세션 쿠키에 추가하고 나중에 확인할 수 있습니다.

편집 : 답변 및 의견 : 모든 요청이 변경되며 $ _SERVER 또는 $ _SESSION 수퍼 글로벌 배열에 저장되지 않습니다. 따라서 웹에서 사용하는 데는 쓸모가 없으므로 사용해서는 안됩니다.

+0

SSL_SESSION_ID 웹 서버의 SSL 구현에 의해 SSL /로 설정되는 것은 아닙니다. (아파치?) [여기에 읽으십시오] (http://h10025.www1.hp.com/ewfrf/wc/document?cc=us&lc=en&dlc=en&tmp_geoLoc=true&docname=c02670261). 이 변수를 왜 사용하고 싶은지 편집 해주십시오. 목적은 무엇입니까? – Kaii

+0

우연히 SSL과 PHP 세션이 혼동을 일으킬 수 있습니까? ['session_id()'] (http://php.net/manual/de/function.session-id.php)를 찾고 있습니까? SSL_SESSION_ID를 사용하여 동일한 사용자가 저에게 잘못되었는지 확인합니다. – Kaii

+0

정말 틀렸어. 동일한 사용자는 매우 짧은 시간 동안 여러 SSL 세션 ID를 가질 수 있으며, 어느 한쪽 끝이 만료되기로 결정할 때마다 자주 변경됩니다. – EJP

답변

1

내가 코멘트와 연구에서 배운 것은 PHP를 통해 ssl_session_id를 얻을 수 없다는 것과 심지어 변경할 수 있다고하더라도 변경이 유용하지 않다는 것입니다. 대답하고 댓글을 준 사람들에게 감사드립니다.

0

당신이 세션에 액세스하기 전에

session_start(); 

을 했는가? 그렇다면 세션이 어떻게 든 부러집니다 (쿠키가 올바르지 않아 새로운 세션이 계속 시작됩니다). 그렇지 않으면 세션에 그 값을 저장하지 않은 것입니다.

$ _SERVER는 세션과 아무 관련이 없습니다. 그것은 서버와 PHP의 설정에 관한 정보를 담고있는 슈퍼 글로벌입니다. $ _SERVER는 전용 슈퍼 글로벌이며 서버 데이터 전용입니다.

+0

오, 나는 그것이 세션이 아니라고 생각했다 - 고마워! 시도해 보겠습니다. –

+0

ssl 세션 아이디가 변경되지 않는 값입니까? 나에게 코드 예제를 알려주시겠습니까? print_r ($ _ SESSION)을 시도했는데 설정 한 내용 만 표시했습니다. –

+1

"서버 데이터 전용입니다." "대신 세션 데이터 용입니다." 맞아. –