تحديد سياسة خصوصية مدمجة مع Django
سؤال
كيف يمكنني تعيين سياسة خصوصية مضغوطة P3P من Django بحيث تقبل IE ملفات تعريف الارتباط من موقعي عندما تكون إعدادات الأمان عالية - أي لم يتم قبول ملفات تعريف الارتباط ما لم تكن هناك سياسة خصوصية مدمجة.
هتاف الرجل
المحلول
الوسيطة هي الطريقة المفضلة للقيام بأشياء مثل هذه على أساس "كل طلب". على سبيل المثال ، إليك جزء بسيط من الوسيطة لإضافة رأس P3P نفسه (مثال) إلى كل استجابة ينشئها Django:
في الإعدادات.
P3P_COMPACT = 'policyref="http://www.example.com/p3p.xml", CP="NON DSP COR CURa TIA"'
MIDDLEWARE_CLASSES += ('myapp.middleware.P3PHeaderMiddleware',)
في 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
للتوسع في الموضوع قليلاً ، يتم إرسال ملفات تعريف الارتباط والرؤوس مثل رأس 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
نصائح أخرى
لا أعرف الكثير عن P3P لكنني فعلت القليل من الحفر ووجدت هذا:
قمت بوضع الملف على /w3c/p3p.xml
يبدو أن سياسات P3P تشبه ملفات Robots.txt.
بالإضافة إلى ذلك ، يمكنك تعيين رؤوس P3P على جميع صفحاتك إذا لم تكن طريقة Robots.txt هي الطريقة التي تريد الذهاب إليها. ومع ذلك ، فهذا أمر جانبي ، نظرًا لأنك تريد الإصدار المدمج الذي أفترض أنه ملف p3p.xml.
آمل أن يساعدك هذا في الحصول على المسار الصحيح.