p3p介紹及問題

概述

本文成於業務

背景

需求:最近由一個需求更新主頁,主要是把www.alibab.com.cnalibaba.com.cnchina.alibaba.com三者之前的跳轉隔離,外因不說了。即前兩者的任何訪問連接都不可以跳轉到第三者下。

部署:目前這三個域名都邦定到exodus2集羣:

訪問首頁時會用apacherewritepage集羣,page集羣會根據具體的來源作處理;

訪問其他非登錄頁面,直接訪問;

訪問需要登錄頁面,對於不同的登錄url過來跳轉到login集羣,再跳轉到對應url

登錄只寫alibaba.com域下的cookie,不會寫alibaba.com.cn域;

問題:用戶訪問需要登錄的頁面,在進行登錄後卻無法登錄,影響用戶體驗。

P3P

對於部分同學在討論時提到用p3p解決該問題,作者之前不瞭解該協議,在閱讀w3cp3p1.01.1)協議後說明幾個概念。

概念:隱私偏好設定平臺(Platformfor Privacy Preference,P3P)

目的:隱私策略提供一個標準的可機讀格式,以及一個能使Web瀏覽器自動讀取和處理策略的協議解決了這個問題。

理解:p3p主要用於“跨域”寫cookie(其實更類似於蒐集信息),先通過一張圖來描述跨域概念。




這裏的跨域概念其實是指通過訪問一個A域名的url,間接調用B域名的連接寫B域名的cookie,從而感覺像是A域名跨域寫了B域名的cookie。這個場景比較試用於如廣告投放的信息蒐集。

舉例:anysql.com域名的客戶端要把google的廣告顯示在哪裏,廣告調用者等。

代碼頁面:



google返回的head頭:




注意p3pheadgoogle定義的是簡潔策略再以引用的方式指向具體的隱私策略。

具體策略信息看如下url

http://www.googleadservices.com/pagead/p3p_full_policy.xml

http://www.googleadservices.com/pagead/p3p.xml

具體使用:p3p也基本看過了,那現在看看是否可解決目前首頁的問題。

在登錄頁面埋個alibaba.com.cn域的連接(寫cookie),通過js去調用該url,把cookie給他進行寫入。

但是這樣引入瞭如下問題:

1.安全問題

2.httpOnly cooke問題



其他方案:

登錄寫cookie根據具體來源的域名寫:

優點:簡單,目前webx是支持這個功能,只需要修改不同請求到登錄的url

缺點:目前大部分需要登錄的頁面在外部應用,他們跳轉到登錄的url是寫死的,如loginchina.alibaba.com,需要工作量。



成本和價值的問題。















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章