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);
누구나 수정하실 수 있습니다. 위키 사용법 참고하세요.

역링크