PHP에 세션 가비지 수집기가있어 PHP 사이트에 액세스 할 때마다 실행될 확률이 있습니다. 당신은 그들이 gc_maxlifetime보다 오래된 경우 save_path에있는 sess_ <PHPSESSID> 파일을 삭제하는 gc_probability/gc_divisor의 기회
session.gc_probability
session.gc_divisor
session.gc_maxlifetime
session.save_path
http://www.php.net/manual/en/session.configuration.php
한 :이은으로 php.ini 파일에 정의되어 있습니다.
기본적으로 session.save_path는 Windows 서버의 경우 C : \ Windows \ Temp로 설정됩니다. 나는 이것이 거의 항상 존재한다고 의심 할 것이다.
고급 보안의 PHP 스크립트 (IIS를 말하는 경우 기본적으로 IUSR) "폴더 나열"권한을 실행하는 계정을 지정해야합니다. 이 권한은 구문 분석에 필요한 sess_ <PHPSESSID>의 실제 이름을 결정하기 위해 PHP가 C : \ Windows \ Temp (또는 사용자가 구성한 모든 위치)의 파일을 나열하는 데 사용됩니다. 그런 다음이 파일들 각각을 검토하고 수정 된 날짜가 maxlifetime보다 오래된 경우 파일을 삭제합니다. 목록 폴더를 제외하고 기본적으로 필요한 모든 권한이 입니다. 이상하게도 IIS_IUSRS (내가 믿는 응용 프로그램 풀에 사용되는 그룹)에는이 권한이 부여되지만 IUSR은 부여되지 않습니다.
"사용자"에게 트래버스 폴더 권한이 부여되고 파일 사용 권한을 부여했기 때문에 IUSR이 해당 파일을 만들 수 있습니다 (이 시점까지는 목록 작업이 수행되지 않습니다).PHPSESSID > 파일을 만들 수 있습니다. IUSR은 here 테스트를 수행 한 Authenticated Users 또는 Users 그룹의 암묵적인 멤버 인 것으로 보입니다. 또한 소유자에게 자신이 만든 파일에 대한 모든 권한을 부여하는 특수한 "CREATOR OWNER"권한 세트가 있습니다. 여기서 IUSR은 실제로 파일을 삭제할 수있는 권한을 얻습니다. 다소 복잡하지만, 걱정해야 할 것은 '목록 폴더'뿐입니다.
내가 CakePHP의에 대해 잘 알고 있지만, 당신은 "이 CakePHP의/tmp 디렉토리는"하게 사용하는 경우, 지적 싶어하지 않는 * 확실히 * 사용자가 검색 할 수없는 /이 가능한 한 /이, 여기에 파일에 액세스 읽기 그들은 세션 ID를 얻고 다른 사람의 세션을 하이 잭 (hejack) 할 수 있습니다. 그리고 사용자가 액세스해야하는 다른 파일에/tmp가 사용되면 이는 좋은 옵션이 아닐 수 있습니다. – Gremio
''defaults '=>'php ''를''defaults'=> 'cake ''로 바꾸 었습니다. 감사!!! –