Summary

  • W3C 于 2002 年 4 月 16 日发布 P3P 1.0 推荐标准。网站可用 XML 声明自己怎样收集、使用数据,浏览器据此与访问者的偏好比较。
  • 浏览器必须先找到政策引用文件,再按页面地址或 Cookie 的匹配规则找到适用政策。多个条目同时命中时,文件里排在前面的适用条目决定去向。

一个人逛网上商店,从商品页走到账户页,再点开结账表单。页脚都写着“隐私政策”,看起来像同一块门牌。可是浏览器若要替这个人比较数据使用方式与个人偏好,就得先问得更细:结账表单由哪份政策覆盖?半路设置的 Cookie 又该查哪份?只会点页脚的浏览器,像拿着商场总平面图去找某一间储物柜。

2002 年 4 月 16 日的 P3P 1.0 推荐标准给网站一套 XML 词汇,用来声明收集哪些类别的数据、用于什么目的、交给哪些接收方。规范里的 Claudia 访问 CatalogExample,浏览器取回该页的 P3P 政策,再和她设置的偏好比较。这个小场景的关键动作发生在比较之前:浏览器先要确认自己找对了政策。

P3P 把找路的工作交给“政策引用文件”。网站可以把它放在约定位置 /w3c/p3p.xml,也可以在 HTML 中用 link 指向它,或通过 HTTP P3P 头提供线索。浏览器先获取并解析这个文件,再根据它去获取真正的政策。前一份是地图,后一份是店家的声明。地图若把表单指错楼层,后面读得再认真也会读错对象。

地图里排列着 POLICY-REF 条目。每项指向一份政策,并圈定它覆盖哪些网址路径或 Cookie;包含与排除规则还可以画出例外。如果同一个网址命中多个条目,规范要求采用文件中第一个适用项。顺序于是有了分量。网站写政策是一项决定,把政策放在地图的第几条、划给哪些页面,则是另一项决定。

规范举例时竟把特殊 Cookie 叫作 obnoxious-cookie。一条规则覆盖普通 Cookie,同时排除这块;另一条规则专门收留它。名字像工程师在会议后半段留下的小脾气,机制却一点也不含糊:同一网站的页面和 Cookie 可以沿不同路线抵达各自的政策。浏览器查看当前页面地址,还得检查 Cookie 的匹配条件。

地图也有保鲜期。EXPIRY 规定政策引用文件或政策可被依赖多久;没有明确写出时,默认是 24 小时。网站修改政策后,规范要求保留旧版本及其生效日期,以对应此前收集的数据。W3C 在同一天的发布消息中公布了 P3P 1.0。浏览器要读懂这张地图,必须知道地址、例外、条目顺序,还要看地图是不是过期了。