Настройка компактной Политики конфиденциальности с помощью Django

Как установить политику конфиденциальности P3P compact от Django, чтобы IE принимал куки с моего сайта, когда настройки безопасности находятся на высоком уровне, т. е. куки не принимаются, если нет политики конфиденциальности Compact.

Ура Гай!--1-->

2 ответов


Middleware-это предпочтительный способ делать такие вещи на основе "каждого запроса". Например, вот простой бит промежуточного программного обеспечения, чтобы добавить тот же (пример) заголовок P3P к каждому ответу, который генерирует Django:

In settings.py:

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

In 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

вы также можете получить аналогичный эффект в одном представлении, установив заголовок P3P в ответе:

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

чтобы немного расширить тему, cookies и заголовки, такие как заголовок P3P, отправляются одновременно, как часть ответа; фактически, под капотом куки устанавливаются с другим заголовком ответа. Вы можете увидеть заголовок cookie с помощью 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

Я не очень много знаю о p3p, но я немного покопался и нашел это:

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

вы помещаете файл в /w3c/p3p.xml

похоже, что политики p3p похожи на роботов.txt-файл.

кроме того, вы можете установить заголовки p3p на всех ваших страницах, если роботы.метод txt-это не то, что вы хотите. Это боковое Примечание, однако, так как вы хотите компактную версию что я предполагаю, является p3p.xml файл.

надеюсь, это поможет вам на правильном пути.