2012-01-23 2 views
0

내 로컬 술집에서 사용자에게 이미지, 메뉴 등의 슬라이드 쇼를 보여줄 스크립트를 설정하고 있습니다. 내 URL은 키 (uuid)를 받아 들일 것입니다.이 스크립트에서 내 스크립트는 관련된 콘텐츠를 데이터베이스에 쿼리합니다 company_id에 기반한 키. 사이트는 자바 스크립트 또는 jquery를 통해 이미지를 통해 회전합니다.연장 된 세션을 사용 하시겠습니까?

콘텐츠를 제공하기 전에 세션이나 사용자가 인증되어 유효한 company_id와 연결되어 있는지 확인하고 싶습니다.

나는 웹 세션에 항상 $_SESSION 개의 변수를 사용했습니다. 세션을 타임 아웃 할 필요가 없으므로, php.ini에서 절대로 설정할 수없는 플래그가 있습니까? 또는 이러한 유형의 작업에 쿠키를 사용하는 것이 더 도움이됩니까?

감사합니다.

+0

다음 질문을 살펴보십시오. http://stackoverflow.com/q/5577106/82447 – klennepette

답변

1

쿠키를 사용하여 만료 날짜가 먼 사용자의 로그인 토큰을 저장하는 것이 더 나을 수 있으므로 자동 로그인됩니다. $_SESSION을 무기한 보존하면 서버에서 리소스를 낭비하는 세션 파일이 쌓일 수 있습니다. 파일 시스템. 대신 쿠키는 데이터베이스의 사용자와 연관된 일부 토큰 (추측 할 수없는 값)을 보유 할 수 있습니다. 기본 정보는 사용자가 반환 할 때 데이터베이스에서 검색 할 수 있습니다.

1

으로 전화를 걸면 스크립트는 세션 ID가 포함 된 사용자 브라우저에 쿠키를 설정하려고 시도합니다. 따라서 세션 ID가 가정 된 값이기 때문에 "추측 할 수없는 값"을 수동으로 설정할 필요가 없습니다 어쨌든 수 있습니다.

inim 파일에서 session.cookie-lifetime (어쩌면 ini_set())을 변경하여 세션이 끝날 때 쿠키 시간 초과를 방지 할 수 있습니다.

보존 $_SESSION이 아니며은 세션 파일을 무한정 누적시킵니다. 세션을 활성 상태로 유지하면 동일한 파일을 계속해서 다시 사용하므로 세션 가비지 수집기에 내장 된 PHP는 죽은 세션을 정리합니다.

일반적으로 세션을 영원히 지속하는 것은 바람직하지 않지만, 현지 주점이므로 아무도 세션을 가로 채려고 시도하지 않을 것입니다. (그들이 한 경우에도, 그들은 얻을 것 모든 권리, 일요일 점심을 무엇입니까?) :

편집 : 당신은 또한 주기적으로 세션 ID를 다시 생성 할 수있는 좀 더 보안을 추가 할 수 있습니다.

관련 문제