2009-11-19 7 views

답변

17

미들웨어는 "모든 요청"에 따라 이와 같은 작업을 수행하는 기본 방법입니다. settings.py에서

:의 MyApp/middleware.py에서

P3P_COMPACT = 'policyref="http://www.example.com/p3p.xml", CP="NON DSP COR CURa TIA"' 
MIDDLEWARE_CLASSES += ('myapp.middleware.P3PHeaderMiddleware',) 

: 예를 들어, 여기 장고 생성 모든 응답에 동일한 (예) P3P 헤더를 추가하기위한 미들웨어의 간단한 비트가

from django.conf import settings 

class P3PHeaderMiddleware(object): 
    def process_response(self, request, response): 
     response['P3P'] = getattr(settings, 'P3P_COMPACT', None) 
     return response 

또한 응답 P3P 헤더를 설정하여 단일 뷰에서 비슷한 효과를 얻을 수있다 :

def my_view(request): 
    response = render_to_response('my_template.html') 
    response['P3P'] = 'CP="NON DSP COR CURa TIA"' 
    return response 

주제를 약간 확장하기 위해 P3P 헤더와 같은 쿠키와 헤더가 모두 응답의 일부로 동시에 전송됩니다. 사실, 쿠키는 다른 응답 헤더로 설정됩니다. curl을 사용하여 쿠키 헤더를 볼 수 있습니다.

$ curl --head http://www.google.com/ 
HTTP/1.1 200 OK 
Date: Wed, 13 Jan 2010 00:04:59 GMT 
Expires: -1 
Cache-Control: private, max-age=0 
Content-Type: text/html; charset=ISO-8859-1 
Set-Cookie: PREF=ID=d2c09762c479f94e:TM=1263341099:LM=1263341099:S=oJby3NpU4RsRfuYa; expires=Fri, 13-Jan-2012 00:04:59 GMT; path=/; domain=.google.com 
Set-Cookie: NID=30=kdKrd5e-u6Xs7cUe3p4eaNDtv6SO88uBL5v6_M1XMTSRmkh7okxrWLOm-l_uZdN37PxQIe4dBlekFFVCpTFXGyIDlUrz1hEwhgVLvXfIik_VeVWGmWzKbA5qu_Zq0sOi; expires=Thu, 15-Jul-2010 00:04:59 GMT; path=/; domain=.google.com; HttpOnly 
Server: gws 
X-XSS-Protection: 0 
Transfer-Encoding: chunked 
0

내가 P3P에 대해 정말 많이 알고하지 않습니다하지만 난 조금 파고를했고,이 발견

http://www.w3.org/TR/P3P11/#Well_Known_Location

당신은 /w3c/p3p.xml에 파일을 넣어

p3p 정책은 robots.txt 파일과 유사합니다.

또한 robots.txt 방법이 원하는 방식이 아닌 경우 모든 페이지에 p3p 헤더를 설정할 수 있습니다. 그러나 이것은 p3p.xml 파일이라고 가정하고있는 컴팩트 버전을 원하기 때문에 부수적입니다.

희망 사항은 올바른 방향으로 이동하는 데 도움이됩니다.

+0

답변을 주셔서 감사합니다. 아무 걱정없이 설정할 수 있습니다. 그것은 장고 인증 시스템에 의해 설정된 쿠키에 P3P 압축 헤더를 추가하는 방법입니다. 쿠키는 제공되는 페이지와 별도의 헤더를 가지고 있습니까? –

관련 문제