[WEB] [http:error] AH02429: Response header name 'P3P ' contains invalid characters, aborting request

갑자기 개발 Site 하나가 500에러를 보여주면서 안된다. 
특별히 뭘 하게 없는데.....
이리저리 확인했더니 다른페이지는 잘 되는데 로그인 연동 페이지만 안되는 현상. 

에러로그를 보니 

[http:error] [pid 2582] [client xxx.xxx.xxx.xxx:63808] AH02429: Response header name 'P3P ' contains invalid characters, aborting request

이게 뭔가 하고 찾아보고 

에러 페이지 소스 지우면서 원인을 봤더니 P3P와 관련 있다는게 맞다고 확신.
(이미 에러로그에 나와있지만)

아래의 링크에 잘 설명되어 있다. 아래 링크로 보세요!! 
http://egloos.zum.com/indirock/v/1497640

링크 블로그 내용에 있듯이 

@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\"");
으로 되어있었는데 이걸 지우거나 아래처럼 변경을 했더니 정상이 되었다. 
@Header ("p3p: CP=\"CAO DSP AND SO ON\" policyref=\"/w3c/p3p.xml\"");

---------------혹시 몰라 링크 블로그 지울경우 대비 시작-----------------------
<head> < meta http - equiv = "p3p" content = 'CP="CAO DSP AND SO " policyref="/w3c/p3p.xml"' > </head>  
심플하게 php에 들어있는 자바스크립트로 만든 팝업등에서
써먹을 수도 있다.  
두번째는  서버에서 직접 설정하는 것인데 왠지 께림찍해서 거부했다.
리누기 conf/httpd.conf 에 다음과 같이 추가한다.
<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>
그리고 데몬을 다시 구동 시켜야 겠지요?  
세번째 무식한 방법
도구-인터넷옵션-개인정보-고급-자동쿠키덮어쓰기
(제3사 쿠키라고 한다.) 체크해주면 됨        
기타 언어별 p3p 셋팅법
<meta http-equiv> 처럼 메타태그를 이용한 헤더 전송방법
아파치서버의 mod_headers 모듈을 이용한 방법
PHP 의 header 를 이용한 방법등이 있다.
jsp의 header
asp의 header
메타태그:
<meta http-equiv="p3p" content='CP="CAO DSP AND SO " policyref="/w3c/p3p.xml"' >

아파치서버 conf/httpd.conf :
<IfModule mod_headers.c>#Header add P3P "CP=\"DSP CUR OTPi IND OTRi L FIN\""</IfModule>

php :<?php
Header
("p3p: CP=\"CAO DSP AND SO ON\" policyref=\"/w3c/p3p.xml\"");
?>
 
혹은( 이상하게 아래것은 안묵히는것 같다.)
<? 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"'); ?>  
asp: <% '//W3C P3P 규약설정 - ASP 버전
Response.AddHeader "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'"%>
  
jsp: Response.setHeader("P3P","CP='CAO PSA CONi OTR OUR DEM ONL'");  
p.s 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"');
?>
<html>
<head>
<title>  </title>
<meta http-equiv="p3p" content='CP="CAO DSP AND SO " policyref="/w3c/p3p.xml"' >
</head>
  
위와 같이 적용한 결과 해결되었음

---------------끝-----------------------------------------------------------------------


댓글

이 블로그의 인기 게시물

[문서] excel 체크박스 삭제

[DB] MySQL 백업 / 복원

[WEB] ASP.NET System.NullReferenceException: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.