본문 바로가기
Q&A해결2018년 4월 18일1분 읽기

PHP 세션과 쿠키 차이점이 뭔가요

P
PHP개발자
조회 1962댓글 3
PHP에서 로그인 기능을 만들고 있는데, 세션과 쿠키 중 어떤 걸 사용해야 하는지 헷갈립니다. 두 개의 차이점이 뭔가요? 로그인 유지에는 뭘 써야 하나요? 보안 측면에서도 궁금합니다.

댓글 3

김김영삼8년 전
**쿠키 (Cookie)**
- 클라이언트(브라우저)에 저장
- 사용자가 수정 가능 (보안 취약)
- 만료 기간 설정 가능
- 최대 4KB

**세션 (Session)**
- 서버에 저장
- 사용자가 직접 수정 불가
- 브라우저 종료 시 기본 만료
- 용량 제한 없음 (서버 메모리)

**로그인 처리 방법:**
```php
// 로그인 시
session_start();
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['name'];

// 로그인 유지 (자동 로그인)
if ($remember) {
$token = bin2hex(random_bytes(32));
setcookie('remember_token', $token, time()+60*60*24*30, '/');
// DB에 토큰 저장
}
```

로그인 인증 자체는 세션, 자동 로그인(로그인 유지)은 쿠키에 안전한 토큰을 저장하는 방식을 씁니다.
서서버지기영호8년 전
참고로 세션도 내부적으로는 쿠키(PHPSESSID)를 사용합니다. 세션 ID가 쿠키로 전달되는 거예요.
PPHP개발자(guest)8년 전
정리가 잘 됐습니다. 세션으로 로그인 처리하고, 자동 로그인만 쿠키 토큰으로 하면 되겠네요. 감사합니다!
Ctrl+Enter로 등록