저는 PHP 세션 핸들링에 대한 조사를 해왔고 session.gc_maxlifetime
1440 초의 값을 발견했습니다 . 표준 값이 1440 인 이유와 계산 방법이 궁금합니다. 이 계산의 근거는 무엇입니까?
세션을 얼마나 오래 유지하는 것이 합리적입니까? session.gc_maxlifetime의 최소 / 최대 값은 무엇을 권장합니까? 가치가 높을수록 웹 애플리케이션이 세션 하이재킹에 더 취약하다고 말하고 싶습니다.
답변
실제 대답은 아마도 이것에 매우 가깝습니다.
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
) 기본값도됩니다.
답변
1440은 초를 시간 / 일로 바꾸는 시간 계산에 사용됩니다.
- 1 일 = 24 시간 (시간 * 24 = 1 일)
- 일 = 1440 분 (분 * 60 * 24 = 1 일)
- 일 = 86400 초 (초 * 60 * 1440 = 1 일)
예:
9 일 [* 60] = 540 [* 1440] = 777600 초
그 반대의 경우도 마찬가지입니다.
777600 초 [/ 1440] = 540 [/ 60] = 9 일