廣告聯盟設計踩坑

1、背景及通過前端

      如今市面上有一些廣告聯盟,運做方式是他們幫你引導用戶,用戶下單時返佣金給他們,這也是一些網站經常使用的推銷方式。 redis

      最近一朋友公司也用這種方式推廣,第一個月跑的好好的,第二個月發現數據猛增,差很少60%的訂單都是廣告聯盟推薦過來的,當時就以爲有問題,而後經過一系列的分析發現,系統自己的設計有漏洞,這裏拋磚引玉一下。後端

     系統的設計流程以下: 安全

假設朋友公司的網站是ab.com,則訪問流程以下;cookie

一、用戶訪問廣告聯盟的廣告連接;測試

二、廣告聯盟將自己的標識將本身標識加在ab.com以後,相似 https://ab.com?adId=123網站

三、ab.com將廣告聯盟標識即123寫入cookie中,做用域爲ab.com;url

四、用戶在ab.com上下單;spa

五、保存訂單時,系統將123的廣告聯盟標識保存到訂單中,以標識這個訂單來自廣告聯盟的推薦。 設計

其中2這一步有個中轉頁,即用戶從廣告聯盟跳轉過來的都到這個頁面,這個頁面只作一件事情,即確認是否來自廣告聯盟,若是是則將這個標識寫入到cookie中。

問題就出如今這一步,通過咱們分析日誌,發現訂單異常的那個月大量的來自廣告聯盟的連接的Referer都來自一個訪問量比較大的社區,而且是以圖片的形式訪問!!

假設中轉頁的地址是 https://abc.om/ad/redirect,則廣告聯盟經過如下方式僞造圖片:

<img src="https://abc.om/ad/redirect?adId=123"

而後聯盟在社區發一個熱門的帖子,帖子中插入上述圖片,這樣全部訪問這個頁面的用戶,都會往ab.com寫入cookie,這樣只要這些用戶再訪問朋友的網站,則系統都認爲是來自廣告聯盟的。

2、解決方案

      問題的緣由知道了,那怎麼解決呢,既而後端寫cookie不可靠,就由前端來寫Cookie,即用戶在訪問 ab.com下的任何一個頁面的時候,前端有個公共的js會檢測url中是否有帶上廣告聯盟標識,若是有,則將標識寫入Cookie中,而且設置Cookie爲httponly。

寫在最後:

一、此次主要仍是在數據上發現了問題,因此監控很是重要。

二、與第三方交互寫敏感Cookie儘可能由前端寫,後端驗證;

三、涉及到錢的場景最好是有安全測試;

全球智能DNS解析實踐

從一次線上故障來看redis刪除機制

PHP內存池分析

相關文章
相關標籤/搜索