표준 세션 수명이 24 분 (1440 초) 인 이유는 무엇입니까?


101

저는 PHP 세션 핸들링에 대한 조사를 해왔고 session.gc_maxlifetime1440 초의 값을 발견했습니다 . 표준 값이 1440 인 이유와 계산 방법이 궁금합니다. 이 계산의 근거는 무엇입니까?

세션을 얼마나 오래 유지하는 것이 합리적입니까? session.gc_maxlifetime의 최소 / 최대 값은 무엇을 권장합니까? 가치가 높을수록 웹 애플리케이션이 세션 하이재킹에 더 취약하다고 말하고 싶습니다.


+1좋은 질문. 관련 뭔가, 60 × 12 × 2는 ... :) ... 재미있는 답변을 기다릴 수 있습니다
프라 빈 쿠마 Purushothaman

4
다음 은 기본값이 설정된 소스 코드 줄입니다 . GIT에 익숙한 사용자는 기록을 추적하고 RFC 또는 버그 티켓 (있는 경우)을 찾을 수 있습니다.
Álvaro González 2013

1
@Anil :이 토론은 내 질문에 대한 답이 아닙니다.
Anna Völkl 2013

2
@ ÁlvaroG.Vicario 변경 사항을 찾았 습니다 . github.com/php/php-src/commit/… 그러나 관련 문서가 없습니다. 1440실제로 타임 아웃의 원래 시간 (분) 이었으므로 누군가 Sascha Schumann을 추적하지 않는 한 우리는 결코 알 수 없을 것입니다.
Dai

6
나는 Sascha의 이메일 주소를 발견하고 이에 대해 그에게 연락했고, 그가 응답하면 사람들에게 알릴 것입니다.
Dai

답변:


183

실제 대답은 아마도 이것에 매우 가깝습니다.

PHP3 일 동안 PHP 자체는 세션을 지원하지 않았습니다.

그러나 처음에는 NetUSE AG의 Boris Erdmann과 Kristian Koehntopp이 작성한 PHPLIB라는 오픈 소스 라이브러리가 PHP3 코드를 통해 세션을 제공했습니다.

세션 수명은 초가 아닌 단위 로 정의되었습니다 . 그리고 기본 수명은 1440 분 또는 정확히 하루였습니다. 다음은 PHPLIB의 코드 줄입니다.

var $gc_time  = 1440;       ## Purge all session data older than 1440 minutes.

Sascha Schumann은 1998 년에서 2000 년 사이에 PHPLIB 프로젝트에 참여했습니다. 그가 PHP3 세션 코드에 익숙한 것은 의심 할 여지가 없습니다.

2000 년에 PHP4가 네이티브 세션 지원으로 나왔지만 이제는 수명이 초 단위로 지정되었습니다.

나는 누군가가 분을 초로 변환하는 것을 결코 귀찮게하지 않을 것입니다. 그 사람이 Sascha Schumann 일 가능성이 높습니다. 이 값이 Zend 엔진에 코딩되면 구성 ( php.ini) 기본값도됩니다.


3
단위를 바꿀 때 24가 특별한 의미를 갖는다는 것은 눈에 띄었다. 따라서 주어진 답변 중에서 귀하의 답변이 가장 의미가 있습니다.
Markus Malkusch

1
그 흥미 롭군요. 공유해 주셔서 감사합니다! :)
SysVoid

3
이것은 정말 흥미 롭습니다! 감사!
Anna Völkl

PHP4 기본 설정에 대한 한 가지 참조 : github.com/php/php-src/blob/PHP-4.0/ext/session/session.c
CXJ

PHP 문서에 따르면 세션 수명은 초 단위로 설정됩니다. php.net/manual/en/…
lemhannes

-16

1440은 초를 시간 / 일로 바꾸는 시간 계산에 사용됩니다.

  • 1 일 = 24 시간 (시간 * 24 = 1 일)
  • 일 = 1440 분 (분 * 60 * 24 = 1 일)
  • 일 = 86400 초 (초 * 60 * 1440 = 1 일)

예:

9 일 [* 60] = 540 [* 1440] = 777600 초

그 반대의 경우도 마찬가지입니다.

777600 초 [/ 1440] = 540 [/ 60] = 9 일


14
그렇다면 왜 표준 세션 수명입니까?
Félix Gagnon-Grenier

3
연구 결과와 거의 동일한 수학 괴상한 숫자이기 때문에 동일한 세션 (20-30 분)에서 두 요청 사이의 가장 큰 시간입니다.
dimitar veselinov 2015-06-25

22
@dimitarveselinov 어떤 연구?
Markus Malkusch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.