詢問 rest client 後續 pass data


#1

這裡要詢問的是 跨網站 pass 資料出去

2個網站 完全不同設備 不同網址

我先用 rest client 先去生成 key 出來

(rest client a> b取得資料 返回資料給a網站)

然後a網站帶著 key與pass 資料 跨網站去傳值

原本我想用 token 機制 但是a b網站 語言完全不同 這個東西恐怕無法處理

所以想用cookies 解決

a網站  cookies.encrypted[:kk] = key 

b網站 讀出 <%= cookies.encrypted[:kk]  %>

但cookies 好像也不可以 跨網域去使用

不知道該怎樣處理跨站傳值的問題??


#2

不可能,cookie 只能用在同一個 domain 上,最多也就 wildcard 的 sub domain 而已,這是 spec 請牢記

and cookie 的安全性和 POST / GET 基本上同等級,沒有所謂的安全性等級之分哩 …

順便我描述一下廣告商的追蹤怎樣做好了,你看完應該就會懂我的意思

假設 ad。catchme。com 為 Z

A網站,有個圖片連到 Z,圖片網址內用 GET 傳遞參數 A=1 , B=2 , C=3
  Z 取得 cookie : nil
  Z SET_COOKIE serial = abcdef

B網站,有個圖片連到 Z,圖片網址內用 GET 傳遞參數 A=2 , B=4 , C=6
  Z 取得 cookie : serial = abcdef
  Z SET_COOKIE last_timestamp = 14000

C網站,有個圖片連到 Z,圖片網址內用 GET 傳遞參數 A=9 , B=6 , C=4
  Z 取得 cookie : serial = abcdef ; last_timestamp = 14000
  Z SET_COOKIE last_act = login

此時 Z 的 cookie jar 為
    serial = abcdef ; last_timestamp = 14000 ; last_act = login
    #cookie 是累積的,且每次都會重傳整份,除非有 Expires,刪除則是 Expires = 0
Z 可得知資訊,使用者 abcdef 經過 A / B / C 三個網站(http header : referer)
    有埋 code,傳值 A 為滑鼠點擊與停放的 X Y 軸,B 為螢幕寬度,C 為捲軸高度
    不需一直回傳,只需要回傳近期內停留最久的一次即可
    不需一定要回傳,損失部分可接受,因為這代表使用者沒有很專注這一頁面

以上三件事情,一票廣告商都在做,而另外再用機器人去掃這個 referer 網址就可得知你(abcdef)真正看過怎樣的文字和圖片,推導出怎樣的內容,最後也可以弄出這樣的 heat map 來做網站優化(掃描可後置,因為使用者不應該傳太多資訊回 Z,而 Z 只需要掃 referer 一次就好)

A / B / C 三個網站取不到 ad 的 cookie,原因是 cookie 的作用域最大的限制範圍適認『由誰來 set-cookie,誰就可以用,除非作用域有寫,不過最多只有同家族可用』,所以 cookie 是不能跨網域的,不然 CDN 還有一票安全性,或是 GET / POST 規則全部都會崩壞掉(大家都會 cookie 即可)

anyway spec 要先有,然後才是怎樣的利用和優化哩,而你的狀況下我不確定怎樣用 cookie 來實作,因為對我來說有點走錯路就是了


#3

我大概懂意思

簡單講

不管 a網站 b網站 c網站

他們要將資料傳送給 Z網站

基本上 SET_COOKIE 的這個動作 應該是在 Z網站做

而唯一有這個機會 就是去Z網站 rest client 或是 jsonp 要弄好 SET_COOKIE 或是資料庫建值

而 a網站 b網站 c網站 基本上只帶一個KEY過去把相關資料帶出來而已 並非在後續動作做傳遞

不知道是否是這個樣子


#4

yep~ 知道作用域後,你就知道其實 cookie 根本無法跨網站不是?

Z 的 set-cookie 的 action 是由 A 來,不過也是 A 用 GET 的網址丟給 Z 才能做,且 set-cookie 是 Z 自己做的,而不是 A

所以 A 其實和 Z 以 cookie 來說完全沒關聯,單純只是 action 的觸發罷了

而圖片都有 referer 所以沒埋 code 單純只有圖片的話,也只能知道來源 A 有看過 Z 的圖片而已,單純只能追流量和錯誤網址之類的而已

& set-cookie 是獨立的 header ,所以你不管是回傳圖片 / JSONP / POST 都可以有這個 header(唯一不行的我記得是 301 / 302,所以需要有空白轉頁)而下次使用者回來就會把之前的 cookie 丟回來


#5

了解

昨天其實有常識這樣做 但瀏覽器一值顯示原始COOKIE 感覺是卡住

但是開發模式裡面的值卻是有變動的

要花點時間在DEBUG @@

感謝JC大