web cookie / session
2022. 11. 11. 13:19ㆍ웹 개발 이론
쿠키 cookie
사용자가 웹 페이지에 접속할때, 서버에서 사용자의 컴퓨터(클라이언트)에 텍스트 파일 형태로 저장하는 정보
- 웹페이지로 접근하는 사용자를 구별하기 위해 사용하는 값입니다. 같은 역활을 하는 session 이라는 것이 존재하는데session 은 서버에 값을 저장하고 cookie 는 클라이언트에 값을 저장하는 차이점이 있다.
- cookie 값이 클라이언트에 저장을 하기 때문에 변조가 쉬우며, 이로 인해 보안에 취약하다는 문제점이 있지만 서버에 부담을 적게 주는 장점이 있기 때문에 보안상에 위협이 되지 않는 값일 경우 쿠키로 저장을 하게 된다
1) 웹 사이트를 재 방문하거나 사이트의 다른 페이지로 이동할 때, 다시 로그인할 필요 없이 사이트를 이용할 수 있게 한다.
2) 웹 사이트 사용자의 이름이나 이이디를 기억한다.
3) 사용자가 어떻게 웹 페이지를 이용하는지 그 패턴을 분석한다.
setcookie()함수를 이용한 쿠키 생성
- setcookie([쿠키이름], [값], [만료시간 / 초 단위], [경로]);
- [참고사항] setcookie 의 만료시간
- setcookie 의 만료시간은 초단위이며, 현재 시간을 초형태로 나타내기 때문에
- time() 함수를 이용하여 현재 시간의 초단위를 구한후 거기에 원하는 만료기간을 초단위로 더해줘야 한다
setcookie("cookie", "setcookie", time() + 3600, "/"); // 1시간 뒤까지 유효하도록 설정
쿠키 사용 방법
1) register_globals=On : 배열 변수 $_COOKIE[]를 사용할 필요 없이, 쿠키의 이름을 변수명으로 사용한다.
2) register_globals=Off : 배열 변수 $_COOKIE[]를 사용한다.
<?
$userid = $_COOKIE['userid'];
$username = $_COOKIE['username'];
echo "쿠키 'userid' : $userid <br>";
echo "쿠키 'username' : $username <br>";
?>
쿠키 삭제 방법
setcookie([쿠키이름], "", 0, [경로]);
- 쿠키를 삭제하는 함수가 따로 존재하지 않습니다. 때문에 setcookie 를 이용하여 값을 제거하고 만료시간을 이용하여 만료된 쿠키로 만들어서 사용할 수 없도록 처리한다.
<?
$a = setcookie("userid", ""); // 쿠키값에 "" (null) 값을 입력한다.
$b = setcookie("username", "");
if ($a and $b)
{
echo "쿠키 'userid'와 'username' 삭제 완료!";
}
?>
★ 세션 session ★
- 세션은 정보를 사용자 컴퓨터와 서버 양쪽에 나누어 저장한다.
- 쿠키보다 보완을 강화할 수 있다. (로그인/로그아웃) 웹사이트를 방문하는 사용자 컴퓨터에 세션 ID정보를 저장
- 서버에는 사용자 컴퓨터의 세션 ID에 대응하는 정보를 저장한다. 두 정보가 짝이 맞아야 서버에서 데이터를 처리할 수 있다.
- 사용자의 컴퓨터의 세션 아이디가 유출되더라도, 세션 아이디 자체에는 별다른 정보가 없고 주요 정보는 서버에 저장되기 때문에 쿠키보다 보안적으로 안전하다.
- PHP Session 을 사용하기 위한 준비코드
session_start();
- [참고사항] session_start() 함수의 위치
session_start() 함수는 소스코드의 최상단에 위치시켜 다른 코드가
그 위에 오지 않도록 처리해야 한다.
- PHP session 생성 및 수정
$_SESSION["[세션명]"] = "값";
세션 삭제 방법
<?
session_start();
unset($_SESSION['userid']);
unset($_SESSION['username']);
unset($_SESSION['time']);
?>'웹 개발 이론' 카테고리의 다른 글
| CORS - cors Preflight request OPTIONS (0) | 2025.11.20 |
|---|---|
| Bootstrap 세팅과 사용법 (1) | 2022.10.31 |
| 하이브리드 앱 초기 설정/설치 ( android-studio ) (0) | 2022.10.12 |
| 모바일 해상도 맞추기 (0) | 2022.09.28 |
| 모바일(유동형) 웹/앱 이론 (0) | 2022.09.26 |