Question

Comment puis-je définir une politique de confidentialité compacte P3P de Django pour que IE accepte les cookies de mon site lorsque les paramètres de sécurité sont sur HIGH -. Dire pas de cookies acceptés à moins qu'il ya une politique de confidentialité Compact

Vive Guy

Était-ce utile?

La solution

Middleware est le meilleur moyen de faire des choses comme celle-ci sur une base « chaque demande ». Par exemple, voici un peu simple de middleware pour ajouter le même (par exemple) en-tête P3P à chaque réponse Django génère:

En settings.py:

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

Dans myapp / middleware.py:

from django.conf import settings

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

Vous pouvez aussi obtenir un effet similaire dans une vue unique en mettant l'en-tête P3P dans la réponse:

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

Pour développer sur le sujet un peu, les cookies et les en-têtes tels que l'en-tête P3P sont tous deux envoyés en même temps, dans le cadre de la réponse; en fait, sous le capot, les cookies sont fixés avec une autre tête de réponse. Vous pouvez voir l'en-tête de cookie par boucle:

$ 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

Autres conseils

Je ne sais pas très bien à propos de P3P, mais je l'ai fait creuser un peu et trouvé ceci:

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

Vous mettez le fichier à /w3c/p3p.xml

Il semble que les politiques P3P sont similaires aux fichiers robots.txt.

En outre, vous pouvez définir les en-têtes P3P sur toutes vos pages si la méthode robots.txt est pas la façon dont vous voulez aller. C'est un côté note, cependant, puisque vous voulez la version compacte je suppose est le fichier P3p.xml.

Espérons que cela vous aide à obtenir sur la bonne voie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top