愛麗絲制造產品
- 她在此處顯示產品資訊:
alice.com/product-001 - 她設定了一個
[Purchase now]指向結帳頁面的按鈕。
Bob 運行結帳服務
- 愛麗絲已經簽約了他的服務。
- Alice 已經在 Bob 的服務中配置了產品 001
- Bob 的系統創建了 2 個相關的 URL:
- 要開始結帳:
bob.com/pay/product-001 - 感謝頁面:
bob.com/thank-you/product-001
- 要開始結帳:
查理是該產品的附屬公司
- Charlie 有一個帶有 ID 的 Google Tag Manager
GTM-999999 - 查理同意Alice和Bob,他
affiliateId會777。 - Charlie 希望在 3 個頁面(產品 checkout-init checkout-complete)上跟蹤銷售漏斗以優化他的預算。
- Alice 和 Bob 都同意接收 URL 中的附屬 ID。
- 如果
?affiliateId=777添加到 3 個頁面中的任何一個,則 Alice 和 Bob 將顯示該標簽GTM-999999以及他們自己的 GTM(如果已經就位)。
這使查理能夠將“像素跟蹤器”(*) 發送到頁面。他可以隨意發送Facebook、Twitter、Google Analytics等的追蹤器;以及他自己創造的任何其他“像素”。
(*) 我們都知道“像素”這個名字來源于古代我們設定1x1透明圖片的時候。但現在它不是影像。它是一個 javascript,因此功能更強大。但也很危險。
題
如果 Alice 和 Bob 渲染 Charlie 的 GTM... Charlie 是否能夠隨意注入任何javascript(例如用于監視第三方 cookie 或重新渲染頁面的可見塊,或爬取 DOM 以發現在那里渲染的電子郵件) ? 或者GTM“過濾掉”可以發送或不發送到瀏覽器的內容?
uj5u.com熱心網友回復:
這是一個非常有效的擔憂。是的,查理將能夠在這些頁面上執行任意 JS。讀取/重寫 cookie,更改整個 DOM,強制將人們重定向到其他站點。基本上,很多東西。
因此,Alice 和 Bob 在允許第三方標簽管理系統時應該非常小心。好吧,不,他們根本不應該允許他們。
這是不同的做法。其他考慮方法:
授予 Charlie 的開發人員訪問 Bob 和 Alice 的 GTM 的權限,并授予他們寫權限。以下是有關如何執行此操作的資訊:https : //support.google.com/tagmanager/answer/6107011? hl=en以及有關權限的一些資訊:https : //support.google.com/tagmanager/answer/6107011? hl=en#container_permissions
為查理制作一些新的 GTM 容器。Bill 將創建一個并共享寫訪問權限,Alice 將創建一個并共享寫訪問權限。它與之前的類似,但現在 Charlie 的所有邏輯都在一個單獨的容器中。
在這兩種情況下,Charlie 的開發人員的寫訪問權限意味著 Bob 和 Alice 的開發人員需要驗證 Charlie 的開發人員所做的更改。然而,第二種情況需要在一個頁面上同步兩個容器。它可能需要高級 GTM 知識。特別是,為所有容器定義跟蹤器名稱以避免資料混合。但是 GTM 不建議定義跟蹤器是有充分理由的。當您定義跟蹤器時,GTM 開始表現不同。如果之前您可以期望每個標簽在其自己的背景關系中執行,現在您將無法這樣做,因此許多未為此標簽顯式設定但已設定為前一個的欄位將被繼承通過這個標簽,所以背景關系將開始持久化。這需要一些不同的跟蹤方法。有點不尋常。GTM 允許使用所有必要的工具來適當地適應它,但即使是高級 GTM 開發人員也常常對這些工具一無所知。它會導致更難解決的錯誤。
- 最后,可以說是最好的方法是讓 Bill 和 Alice 將他們的實施者與 Charlie 的分析師聯系起來,讓他們實施分析師需要的任何跟蹤。對于附屬公司來說,這通常并不多,而這正是大公司世界中企業分析的作業方式。由于 Charlie 是附屬機構,因此可以合理預期會有更多附屬機構。現在允許 Bill 和 Alice 的實施者為完整的會員入職分析構建一些規則和半自動化解決方案。他們最終會得到一些查找表(或者只是一個整潔的 JS 變數)和一些使用 LUT 作為帳戶 ID 的像素/GA 標簽。
完畢!非常堅實的基礎可以支持幾乎無限數量的附屬機構,而在實施方面沒有顯著壓力。
- 讓查理和其他人把他們的容器放在頁面上肯定會導致混亂。它最終可能會比任何其他選擇花費更多的時間和精力。
uj5u.com熱心網友回復:
GTM 本身不過濾,您必須相應地創建設定。
允許加載一個完整的 GTM 容器聽起來有點矯枉過正,無論如何都是相當危險的。但是您可以創建允許串列或拒絕串列來限制標簽??部署,并只允許某些類別的標簽。
拒絕串列需要排除自定義 HTML (javascript),否則它毫無意義(因為 Charlie 可以通過 Javascript 實作禁止的像素)。設定它可能很困難,以便允許/拒絕串列僅影響 Charlies 容器而不是您自己的容器。
更好的方法是讓查理為其跟蹤標簽提供自定義模板。GTM 中的自定義模板使用“沙盒 javascript”,這是 JS 的一個子集,可以訪問一些 Google API,以防止危險操作(例如 DOM 訪問)。您可以設定 Charlies 標簽允許或不允許的附加權限(設定 Cookie、將像素發送到某些 url、加載腳本等)。
更明確地說,如果您允許第三方在他們的控制下將 GTM 容器呈現到您的站點中,那么您將站點的控制權交給了m,他們可以竊取資料、讀取 cookie、破壞您的站點以及執行任何其他操作使用 Javascript 是可能的。
您可以通過拒絕串列和模板策略來緩解這種情況,但更好的想法是首先不要允許這樣做并尋找一種不那么突兀的解決方案。
此外,如果您在 GDPR 和 ePrivacy 方向的管轄范圍內,您需要確保 Charlie 以合規的方式實施他的跟蹤,而您無法做到這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/313703.html
標籤:javascript 安全 谷歌标签管理器 代码注入
