익스플로러 6.0에서 쿠키관련 문제 해결 방법(로그인문제).. 정보
PHP 익스플로러 6.0에서 쿠키관련 문제 해결 방법(로그인문제)..본문
질문과 답변란의 글들을 보면 어떤 특정 컴퓨터에서만 로그인이 안되는 문제 때문에 고생하시는 분들이 많은것 같아 글을 올립니다.
인터넷 익스플로러 6.0 부터 개인정보기능 때문에 쿠키저장이 잘 안되는 경우가 발생합니다.
일일히 사용자들에게 보안설정하라고 할수는 없고, 근본적으로 해결할수 있는 방법을 찾으려 여러문서들을 뒤지던중 알아낸 정보입니다.
물론 지금 이글이 모든 문제를 해결할수는 없지만 대부분의 익스플로러에서 쿠키저장에 관한 문제는 해결이 가능하다라고 생각합니다.
쿠키가 저장이 안돼는 문제는 대략..
프레임 또는 아이프레임을 사용하는 사이트의 경우가 대부분이더군요..
근본적인 해결방법은 P3P(The Platform for Privacy Preferences) 정보를 HTTP 헤더에 포함하여 전송하면 제1쿠키 및 제3쿠키 까지 사용이 가능하다고 합니다.
우선 아파치를 웹서버로 사용하고 계신분들은
# httpd -l
명령으로 mod_headers.so 가 있는지 확인하시고 없으면 다시 컴파일해야 합니다.
DSO 로 설치하셨을 경우 httpd -l 을 하더라도 설치된 모듈이 다 나오지 않습니다.
말그대로 동적(dynamic)이라 그렇습니다.
아파치가 DSO방식으로 설치되어있을때는 굳이 컴파일을 다시 안하고, apxs(APache eXtenSion tool)을 이용해서 간단히 해결할 수 있습니다.
(예: ./apxs -i -a -c mod_headers.c )
다시 컴파일 할 경우 컴파일 옵션에 --enable-module=headers 또는 --enable-module=all 이라는 옵션을 주어야하고..
httpd.conf 파일을 열어서
LoadModule headers_module modules/mod_headers.so
위 부분이 있나 확인한후, 설정이 되어 있다면 아래부분을 추가하시면 됩니다.
<IfModule mod_headers.c>
Header add P3P "CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\""
Header set P3P "CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\""
</IfModule>
확인 방법은
# telnet localhost 80
Trying localhost...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
Host: localhost
HTTP/1.1 200 OK
Date: Sun, 25 Jan 2004 19:39:24 GMT
Server: Apache/2.0.48 (Win32) PHP/4.3.4
X-Powered-By: PHP/4.3.4
P3P: CP="ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC"
Transfer-Encoding: chunked
Content-Type: text/html; charset=euc-kr
위와같이 HTTP 헤더정보에 P3P 관련 내용이 있으면 성공한 것입니다.
윈도우에 아파치를 설치하신분들은..
httpd.conf 파일을 열어서
LoadModule headers_module modules/mod_headers.so
이부분의 주석을 제거하시고
<IfModule mod_headers.c>
Header add P3P "CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\""
Header set P3P "CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\""
</IfModule>
위 부분을 추가하신후 재실행 하시면 됩니다.
IIS 사용자는 '기본웹사이트' 등록정보에서 '사용자 정의 HTTP Header'에 추가 만 하시면 됩니다
마지막으로 서버설정을 건드리지 못하는 분들은...
PHP 소스 맨위에
header('P3P: CP="ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC"');
위 부분을 추가하십시오.. 물론 모든 소스에 추가하셔야 합니다.
로그인이 안된다는 분들의 또 다른 공통점을 보면..
그누보드를 최신버젼으로 업글 한후에 안된다는 분들이 많습니다.
그누보드 index.php 파일의 가장 윗부분에 보시면
// 3.21 에서 삭제 (정확한 의미를 모른 상태에서 사용하였으나 역시 아무런 의미가 없는것으로 확인됨)
// 타 도메인간 세션의 공유를 하기 위함
//header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"');
이런 부분이 있는데...
위 부분의 주석을 풀어주셔도 무방할듯 합니다.
위 방법으로도 해결이 안돼시는 분들 계시면 자세한 내용으로 글 남겨주십시오.
다른 방법도 찾아보겠습니다.
자세한 정보나 원인은 아래 MSDN Library와 P3P 사이트를 참고하십시오.
MSDN Library - http://www.microsoft.com/korea/msdn/library/dnsecure/html/ie6privacyfeature.asp
P3P - http://www.w3.org/TR/P3P
인터넷 익스플로러 6.0 부터 개인정보기능 때문에 쿠키저장이 잘 안되는 경우가 발생합니다.
일일히 사용자들에게 보안설정하라고 할수는 없고, 근본적으로 해결할수 있는 방법을 찾으려 여러문서들을 뒤지던중 알아낸 정보입니다.
물론 지금 이글이 모든 문제를 해결할수는 없지만 대부분의 익스플로러에서 쿠키저장에 관한 문제는 해결이 가능하다라고 생각합니다.
쿠키가 저장이 안돼는 문제는 대략..
프레임 또는 아이프레임을 사용하는 사이트의 경우가 대부분이더군요..
근본적인 해결방법은 P3P(The Platform for Privacy Preferences) 정보를 HTTP 헤더에 포함하여 전송하면 제1쿠키 및 제3쿠키 까지 사용이 가능하다고 합니다.
우선 아파치를 웹서버로 사용하고 계신분들은
# httpd -l
명령으로 mod_headers.so 가 있는지 확인하시고 없으면 다시 컴파일해야 합니다.
DSO 로 설치하셨을 경우 httpd -l 을 하더라도 설치된 모듈이 다 나오지 않습니다.
말그대로 동적(dynamic)이라 그렇습니다.
아파치가 DSO방식으로 설치되어있을때는 굳이 컴파일을 다시 안하고, apxs(APache eXtenSion tool)을 이용해서 간단히 해결할 수 있습니다.
(예: ./apxs -i -a -c mod_headers.c )
다시 컴파일 할 경우 컴파일 옵션에 --enable-module=headers 또는 --enable-module=all 이라는 옵션을 주어야하고..
httpd.conf 파일을 열어서
LoadModule headers_module modules/mod_headers.so
위 부분이 있나 확인한후, 설정이 되어 있다면 아래부분을 추가하시면 됩니다.
<IfModule mod_headers.c>
Header add P3P "CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\""
Header set P3P "CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\""
</IfModule>
확인 방법은
# telnet localhost 80
Trying localhost...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
Host: localhost
HTTP/1.1 200 OK
Date: Sun, 25 Jan 2004 19:39:24 GMT
Server: Apache/2.0.48 (Win32) PHP/4.3.4
X-Powered-By: PHP/4.3.4
P3P: CP="ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC"
Transfer-Encoding: chunked
Content-Type: text/html; charset=euc-kr
위와같이 HTTP 헤더정보에 P3P 관련 내용이 있으면 성공한 것입니다.
윈도우에 아파치를 설치하신분들은..
httpd.conf 파일을 열어서
LoadModule headers_module modules/mod_headers.so
이부분의 주석을 제거하시고
<IfModule mod_headers.c>
Header add P3P "CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\""
Header set P3P "CP=\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\""
</IfModule>
위 부분을 추가하신후 재실행 하시면 됩니다.
IIS 사용자는 '기본웹사이트' 등록정보에서 '사용자 정의 HTTP Header'에 추가 만 하시면 됩니다
마지막으로 서버설정을 건드리지 못하는 분들은...
PHP 소스 맨위에
header('P3P: CP="ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC"');
위 부분을 추가하십시오.. 물론 모든 소스에 추가하셔야 합니다.
로그인이 안된다는 분들의 또 다른 공통점을 보면..
그누보드를 최신버젼으로 업글 한후에 안된다는 분들이 많습니다.
그누보드 index.php 파일의 가장 윗부분에 보시면
// 3.21 에서 삭제 (정확한 의미를 모른 상태에서 사용하였으나 역시 아무런 의미가 없는것으로 확인됨)
// 타 도메인간 세션의 공유를 하기 위함
//header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"');
이런 부분이 있는데...
위 부분의 주석을 풀어주셔도 무방할듯 합니다.
위 방법으로도 해결이 안돼시는 분들 계시면 자세한 내용으로 글 남겨주십시오.
다른 방법도 찾아보겠습니다.
자세한 정보나 원인은 아래 MSDN Library와 P3P 사이트를 참고하십시오.
MSDN Library - http://www.microsoft.com/korea/msdn/library/dnsecure/html/ie6privacyfeature.asp
P3P - http://www.w3.org/TR/P3P
추천
0
0
댓글 전체
^^