>백엔드 개발 >PHP 튜토리얼 >elcomsoft wireless security au PHP 세션은 만료되지 않습니다. 솔루션 아이디어 및 구현 방법 공유

elcomsoft wireless security au PHP 세션은 만료되지 않습니다. 솔루션 아이디어 및 구현 방법 공유

WBOY
WBOY원래의
2016-07-29 08:44:501146검색

우리는 회사의 고객 서비스 직원, 즉 제한된 수의 고객 서비스 직원만이 사용할 수 있는 시스템을 초기 단계에서 개발했습니다. 며칠 전 갑자기 이 질문을 제기한 것은 제한된 고객 서비스 직원이었습니다. 매 짧은 시간(페이지를 운영하지 않고 30분)마다 고객의 문제를 해결하고 싶어할 때 시스템은 우리에게 로그인이 필요하다는 메시지를 표시했습니다. 고객의 시간이 늦어졌습니다... 참으로 기분 나쁜 일입니다.
고객은 신, 유일한 신입니다. 그래서 상사는 고객 서비스 직원이 인위적으로 세션을 만료시키지 않는 한 PHP의 세션은 결코 만료되지 않는다는 점을 인식하라고 요청했습니다. 보안상의 이유로 이러한 만료되지 않는 동작을 이해하지 못합니다. 게으른 이유로 이전 프로그램을 수정하고 싶지 않습니다. 하지만 방법이 없습니다. 여전히 변화가 필요합니다.
가장 좋은 방법은 프로그램을 수정하지 않는 것입니다. 프로그램을 수정하면 테스트 부서가 저처럼 매우 우울해지기 때문입니다. 그러면 시스템 환경 구성만 수정하면 됩니다. 실제로는 매우 간단합니다. ini 설정 파일을 열고 다음 세 줄을 수정합니다.
1. session.use_cookies
이 값을 1로 설정하고 쿠키를 사용하여 sessionid를 전달합니다.
2. session.cookie_lifetime
이는 SessionID가 실행되는 시간을 나타냅니다. 기본값은 0 입니다. 이는 브라우저가 닫히자마자 SessionID가 무효화됨을 의미합니다... 이로 인해 PHP 세션을 영구적으로 사용할 수 없습니다. 따라서 숫자로 설정해 보겠습니다. 우리가 생각하는 것은 매우 크다고 생각합니다. 999999999는 어떻습니까? 괜찮습니다!
3. session.gc_maxlifetime
세션 데이터가 서버 측에 저장되는 시간입니다. 이 시간을 초과하면 세션 데이터가 자동으로 삭제됩니다. 그리고 99999999로 설정합니다.
그게 다입니다. 물론 믿을 수 없다면 테스트해보고 확인하세요. 세션을 설정하고 10일 반 후에 컴퓨터가 꺼지거나 충돌하지 않으면 다시 오세요. , 당신은 여전히 ​​이 세션 ID를 볼 수 있습니다.
물론, 서버를 제어할 수 있는 권한이 없고 php.ini 설정을 수정하는 것이 저만큼 운이 좋지 않을 수도 있습니다. 물론, 스스로 의존하는 방법도 있습니다. 클라이언트를 사용하여 쿠키를 저장하고 sessionID를 가져와야 합니다. 이를 클라이언트의 쿠키에 저장하고 이 쿠키의 값을 설정한 다음 이 값을 session_id() 함수에 전달해야 합니다.

코드 복사 코드는 다음과 같습니다.


session_start() // 세션 시작
$_SESSION[ 'count']; // 세션 변수 개수 등록
isset($PHPSESSID )?session_id($PHPSESSID):$PHPSESSID = session_id()
// $PHPSESSID가 설정된 경우 $PHPSESSID에 SessionID를 할당합니다. 그렇지 않으면 SessionID 생성
$_SESSION['count']; // 변수 count에 1을 추가합니다.
setcookie('PHPSESSID', $PHPSESSID, time() 3156000) // SessionID를 쿠키에 저장합니다.
echo $ count; // 세션 변수 count 값 표시
?>


오랜만에 이 페이지를 새로 고치면(얼마나 오래? 직접 확인 가능) 출력 숫자가 나갈 때보다 1이 더 크다면 맞네요! 훨씬 더 크다면 누구일까요? 컴퓨터를 만지면 이 테스트가 부정확해집니다. 하하... 잠시 다시 나가보세요! 🎜> 참고: setcookie 줄의 'PHPSESSID'는 확실하지 않습니다. 수정에 열광하는 사람을 만난다면 네트워크 관리자가 이를 수정했을 수 있습니다. 가장 좋은 방법은 phpinfo() 함수를 사용하여 값을 확인하는 것입니다. session.name은 좀 더 과학적입니다.
이상은 elcomsoft wireless security au의 내용을 포함하여 elcomsoft wireless security au PHP의 세션은 만료되지 않는 솔루션 아이디어와 구현 방법을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.