【问题标题】:Setting a Compact Privacy Policy with Django使用 Django 设置紧凑的隐私政策
【发布时间】:2010-12-18 10:37:32
【问题描述】:

我如何从 Django 设置 P3P 紧凑型隐私政策,以便 IE 在安全设置为 HIGH 时接受来自我网站的 cookie - 即除非有紧凑型隐私政策,否则不接受 cookie。

干杯 伙计

【问题讨论】:

    标签: django cookies p3p


    【解决方案1】:

    中间件是在“每个请求”的基础上执行此类操作的首选方式。例如,这里有一个简单的中间件,可以为 Django 生成的每个响应添加相同的(示例)P3P 标头:

    在settings.py中:

    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
    

    为了稍微扩展一下主题,cookie 和诸如 P3P 标头之类的标头都是同时发送的,作为响应的一部分;事实上,在后台,cookie 设置有另一个响应标头。您可以使用 curl 查看 cookie 标头:

    $ 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
    

    【讨论】:

      【解决方案2】:

      我对 p3p 不太了解,但我做了一点挖掘,发现了这个:

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

      你把文件放在/w3c/p3p.xml

      看起来 p3p 策略类似于 robots.txt 文件。

      此外,如果 robots.txt 方法不是您想要的方式,您还可以在所有页面上设置 p3p 标头。但是,这是一个旁注,因为您想要紧凑的版本,我假设它是 p3p.xml 文件。

      希望这有助于您走上正轨。

      【讨论】:

      • 感谢您的回答,我可以设置所有这些,不用担心。更多的是我如何将 P3P 紧凑标头添加到由 Django Auth 系统设置的 cookie 中。cookie 是否对所服务的页面有单独的标头?
      猜你喜欢
      • 2011-05-19
      • 2015-10-03
      • 1970-01-01
      • 2018-03-24
      • 2019-10-11
      • 2018-06-08
      • 2017-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多