Cookie
쿠키 공유
쿠키는 타 도메인 간에 공유되지 않는다.
www.domain.com 에서 쿠키를 발행할 수 있는 최대범위는 *.domain.com 입니다.
www.example.com 과 이 사이트의 서브도메인을 활용한 사이트, 예를들어 app.example.com, demo.example.com 를 사용한다면 이 세 도메인간의 쿠키는 공유될 수 있다. 이때 이 서비스가 반드시 동일한 서버에 있을 필요는 없으며, 모든 도메인이 하나의 top domain에 속할 필요는 없다.
그니까 다음처럼 하면
setCookie("logid","gagamel", 0, "/", ".domain.com"); setCookie("passwd","gozila", 0, "/", ".domain.com");
뒤부분이 .domain.com 으로 끝나는 서버 (예를 들면 shop.domain.com)에서는 www.domain.com 에서 발행한 쿠키를 쓸 수 있게 되죠.
echo $logid; ←- 요렇게요….
하지만 쿠키는 중요정보가 모두 클라이언트쪽으로 보내지기 때문에 보안상 무척 좋지 않습니다. 그래서들 요즘에는 세션 (Session)를 쓰죠…^^
javascript
A가 info.site.com 이고, B가 blog.site.com 일 때
Response.Cookies("id") = "marga" Response.Cookies("id").Domain = "site.com"
이렇게 해주면, site.com 영역에서는 해당 쿠키를 공유할 수 있다.
php
PHP로 cookie 설정하기/가져오기 PHP 를 사용해서 쿠키 저장하기
php는 웹브라우저상에서 쿠키를 저장하고 삭제할수 있는 함수 setCookie 를 기본적으로 제공한다
옵션에 따라 다양한 환경에서의 사용하는 것도 가능하다
setcookie(cokie name,cookie value,cookie lifetime,cookie path,domain,connection type,http access);
- Cookie Name – 쿠키 이름. 한번 설정하면 이후로는 $_COOKIE['name'] 로 접근할수 있다.
- Cookie Value – 쿠키의 값.
- Cookie Lifetime – 만료나 삭제까지 남은 시간. 보통 time()+3600 (현재시각+한시간) 과 같은 형식으로 사용한다
- Cookie Path – 웹사이트의 특정 디렉토리 내에서만 유효하도록 설정하는 변수. "/" 로 설정하면 웹사이트 전체에서 접근할수 있다
- Cookie Domain – 특정 서브도메인 또는 도메인 전체를 유효범위로 지정하는 변수.
- Connection Type – TRUE 또는 FALSE 값을 가진다. TRUE일 경우 HTTPS인 경우에만 접근 가능하다.
- HTTP Access – TRUE 또는 FALSE값을 가진다. TRUE일 경우에는 HTTP로 접근할 시에만 접근 가능하다
쿠키 값 가져오기
$_COOKIE['cookie_name'];
쿠키 삭제하기
쿠키 삭제 함수는 쿠키 저장 함수와 똑같다. 단지 Lifetime 파라미터를 과거 시점의 값으로 설정해주면 된다.
생성을 아래와 같이 했다면
setcookie("Logged","True",time()+3600,"/");
아래와 같이 삭제할 수 있다
setcookie("Logged","True",time()-3600,"/");
쿠키 함수의 올바른 사용예
이름과 값으로 생성
setcookie("Logged","True",time()+3600);
어플리케이션 전체를 범위로 생성
setcookie("Logged","True",time()+3600,"/");
어플리케이션 내의 특정 폴더를 범위로 생성
아래 함수는 어플리케이션 내에서 /blog/tutorials/ 폴더 내에서만 작동한다
setcookie("Logged","True",time()+3600,"/blog/tutorials/"); 도메인 간 공유 쿠키 생성
아래 함수는 exmaple 도메인과 그 하위 도메인에 대해서만 작동한다
setcookie("Logged","True",time()+3600,"/",".example.com");
특정 하위도메인에 대해서만 생성
아래 함수는 app.example.com 도메인에 대해서만 작동한다
setcookie("Logged","True",time()+3600,"/",".app.example.com");
보안이 유지되는 특정 하위 도메인의 쿠키로 생성
아래 함수는 example.com과 그 하위 도메인 영역에서 https 연결하고 있을 경우에만 작동한다
setcookie("Logged","True",time()+3600,"/",".example.com",1);
보안이 유지되는 특정 하위 도메인의 쿠키로 생성. HTTP 요청으로만 접근 가능
아래 함수는 example.com과 그 하위 도메인 영역에서 https 연결하고 있을 경우에 작동하며 HTTP(이 경우에는 HTTPS) 연결을 통해서만 접근이 가능하다
setcookie("Logged","True",time()+3600,"/",".example.com",1,1);
누구나 수정하실 수 있습니다. 위키 사용법 참고하세요. |
---|