Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 영구 쿠키(Persistent Cookie)란 무엇이고, 언제 사용할까?

영구 쿠키(Persistent Cookie)는 사용자 컴퓨터의 쿠키 파일에 지정된 만료 기간까지 영구적으로 저장되는 쿠키를 말합니다.

반면 우리가 흔히 접하는 일반 쿠키는 임시 쿠키(Session Cookie)로, 브라우저의 메모리에만 저장됩니다. 따라서 브라우저를 종료하면 임시 쿠키는 메모리에서 자동으로 삭제됩니다. 반면 영구 쿠키는 만료 시점을 설정하지 않는 한 파일 형태로 디스크에 남아 있기 때문에 브라우저를 다시 실행해도 값이 유지됩니다.

영구 쿠키와 임시 쿠키의 차이

  • 임시 쿠키는 브라우저 세션이 끝나면 사라지므로, 장기간에 걸친 정보 추적에는 사용할 수 없습니다.
  • 영구 쿠키는 만료 기한 동안 계속 유지되므로 로그인 상태 유지, 방문 이력 저장 등 장기적인 정보 추적에 적합합니다.
  • 임시 쿠키는 메모리에만 존재하고 브라우저 외부 프로그램이 접근하기 어렵기 때문에 상대적으로 더 안전합니다.
  • 영구 쿠키는 디스크의 쿠키 파일에 저장되므로, 사용자가 해당 파일을 열어 쿠키 값을 직접 확인할 수 있습니다. 이로 인해 보안성은 상대적으로 낮아집니다.

PHP에서 영구 쿠키 생성하기

PHP에서는 setcookie() 함수에 만료 시간을 지정하여 영구 쿠키를 만들 수 있습니다. 예를 들어 30일 동안 유지되는 쿠키는 다음과 같이 작성합니다.

<?php
// 30일(60초 × 60분 × 24시간 × 30일) 후 만료되는 영구 쿠키
setcookie("username", "hong", time() + (86400 * 30), "/");
?>

위 코드에서 네 번째 인자인 경로("/")는 사이트 전체에서 쿠키를 사용할 수 있도록 지정한 것입니다. 만료 시간 인자를 생략하거나 0을 전달하면 세션이 종료될 때 삭제되는 임시 쿠키가 됩니다.

영구 쿠키 사용 시 주의사항

영구 쿠키는 편리하지만 민감한 정보(비밀번호, 개인정보 등)를 평문으로 저장해서는 안 됩니다. 필요한 경우 값을 암호화하거나 서버 측 세션과 함께 활용하는 것이 좋으며, HTTPS 환경에서 secure, httponly 옵션을 함께 설정하면 보안을 강화할 수 있습니다.