차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
tech:cookie [2013/12/15 13:09] – [쿠키 공유] V_Ltech:cookie [2016/07/12 00:56] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +{{tag>cookie}}
 +======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; <-- 요렇게요.... 
 +
 +하지만 쿠키는 중요정보가 모두 클라이언트쪽으로 보내지기 때문에 보안상 무척 좋지 않습니다. 그래서들 요즘에는 [[tech:session|]]를 쓰죠...^^ 
 +
 +====javascript====
 +
 +A가 info.site.com 이고, B가 blog.site.com 일 때
 +<code javascript>  Response.Cookies("id") = "marga"
 +  Response.Cookies("id").Domain = "site.com"</code>
 +
 +이렇게 해주면, 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);
 +
 +
 +^  누구나 수정하실 수 있습니다. [[http://vaslor.net/syntax|위키 사용법]] 참고하세요.  ^
 +