題目與範圍
公司營運 Web 應用程式、行動端、分析系統與廣告整合,需要遵循瀏覽器級 Global Privacy Control 訊號、使用者明確選擇與變化中的地區規則。請設計控制面與請求時執行路徑,涵蓋匿名訪客、登入使用者、多裝置、合作夥伴與政策更新。
核心能力是分散式政策執行與隱私狀態建模,因此歸入 system-design。
面試官考察什麼
第一,能否區分訊號與法律決定?Sec-GPC 請求標頭或瀏覽器屬性是輸入,是否適用以及允許哪些目的由政策與上下文決定。
第二,能否定義優先級與作用域?全域退出可能按瀏覽器、帳戶、家庭或地區適用,系統不能靜默合併不同作用域。
第三,能否在資料離開邊界前執行?分析、廣告技術、匯出與合作夥伴 API 都需要共享決策點,而不只是橫幅。
第四,能否讓決定可解釋、可撤回?保留政策版本、來源、時間與有效期,同時最小化個人資料。
第五,能否安全失敗?政策儲存、快取或地區判斷異常時,對可選共享預設最嚴格模式,並輸出可觀測原因。
先釐清的問題
- 涵蓋哪些地區與目的,權威規則來自哪裡?
- 登入後 GPC 是作用於帳戶,還是只作用於瀏覽器上下文?
- 阻止哪些目的:出售、共享、定向廣告、量測,還是所有可選處理?
- 撤回需要多快到達快取、佇列、倉庫與合作夥伴?
- 需要保留哪些證據,哪些資料要刪除或匿名化?
- 所有出站整合是否都能呼叫同一政策決策服務?
30 秒回答框架
「我會把瀏覽器訊號與明確選擇規範化為帶版本的隱私意圖,在每個資料出站邊界結合地區與目的政策評估。決定包含作用域、政策版本、有效期與原因;可選共享採用短快取與失敗關閉。撤回事件傳播到佇列與合作夥伴,追加最小稽核證據。測試匿名轉登入、衝突作用域、政策更新、快取陳舊與合作夥伴失敗。」
分步作答
第一步:規範化輸入並避免過度識別
邊緣層記錄 GPC 訊號、來源、使用者代理上下文、帳戶狀態與宣告地區。匿名瀏覽器識別與帳戶識別分離,只有政策允許時才關聯。把明確選擇規範化為出售、共享、量測與個人化等目的。
第二步:評估帶版本的政策
政策服務接收主體作用域、目的、地區、訊號來源與時間,回傳 allow、deny 或 unknown,並帶政策版本、有效期與原因碼。GPC 本身不是所有地區所有目的都禁止的證明,評估器必須套用對應規則。
第三步:在每個出站邊界執行
分析、廣告技術、匯出與合作夥伴 API 發送前都要求短期決策權杖。SDK 可以減少誤採集,但伺服器必須執行,因為客戶端可被修改。佇列與批次工作在投遞前再次檢查,而不是只在入列時檢查。
第四步:傳播變化與撤回
按作用域主體引用發布隱私意圖事件。消費者使快取失效、停止後續匯出,並標記需要刪除或抑制的資料。合作夥伴只接收目的、作用域、生效時間與驗證資訊,令牌足夠時不要廣播原始身分。
第五步:稽核決定而非載荷
記錄請求類別、主體作用域雜湊、目的、政策版本、訊號來源、決定與時間。加密存取、限制保留期,並將運維日誌與使用者解釋分離。稽核應能回答為何允許或拒絕傳輸,但不要複製敏感事件內容。
第六步:失敗關閉並觀測
政策查詢或撤回傳播失敗時,阻止可選共享並排隊重試。指標包括未知決定、陳舊版本、拒絕傳輸、合作夥伴確認與撤回耗時;告警要區分政策故障與真實退出增加。
第七步:測試邊界與對抗場景
測試匿名瀏覽後登入、多分頁、帳戶與瀏覽器作用域衝突、時鐘偏差、地區變化、重播訊號、快取過期、佇列重投、合作夥伴逾時與政策回滾,確認拒絕決定不能透過另一條匯出路徑繞過。
示例回答
「我會建構帶版本的隱私決策服務,並在每個可選資料出站邊界要求短期決策權杖。邊緣層規範化 GPC 與明確選擇,同時保持瀏覽器與帳戶作用域分離。政策評估結合目的、地區、來源與生效時間,回傳原因與版本。佇列與合作夥伴投遞前再次檢查,撤回事件使快取失效並觸發抑制流程。
服務對可選共享失敗關閉,保存最小決定證據,並觀測未知決定、陳舊快取、確認與撤回耗時。測試涵蓋登入轉換、衝突作用域、重播、地區變化、重試與替代匯出路徑。橫幅本身不是執行機制。」
常見錯誤
- 把 GPC 當成通用布林值 → 遺失作用域與地區 → 一起評估訊號、目的與政策。
- 只在瀏覽器執行 → 修改客戶端即可繞過 → 在伺服器出站處執行。
- 立即關聯匿名與帳戶身分 → 產生不必要畫像 → 沒有正當依據不要關聯。
- 只在入列時檢查 → 撤回與投遞競態 → 發送前再次檢查。
- 政策故障時放行 → 可選資料外洩 → 失敗關閉並重試。
- 稽核完整載荷 → 日誌變成隱私風險 → 保存最小決定證據。
- 忽略合作夥伴確認 → 無法證明傳播成功 → 追蹤回執與時限。
追問
追問 1:GPC 會取代同意橫幅嗎?
不會。它是瀏覽器級訊號,含義取決於適用政策。介面可以收集額外選擇,但執行必須遵循評估結果。
追問 2:登入後如何處理?
保持瀏覽器與帳戶作用域分離,再套用明確的關聯規則。沒有政策依據時,不要靜默擴大到帳戶偏好。
追問 3:決定可以快取多久?
只能在風險與政策允許的時間內快取。使用短 TTL、版本失效,以及無法證明新鮮時的失敗關閉。
追問 4:合作夥伴離線怎麼辦?
超過確認時限就停止可選投遞,保留最小重試記錄,合作夥伴恢復後再對帳。
追問 5:稽核記錄應包含什麼?
作用域引用、目的、訊號來源、政策版本、決定、原因與時間通常足夠,避免複製事件載荷。
追問 6:如何證明沒有繞過路徑?
盤點所有出站路徑,在共享中介軟體強制決策權杖,並對 SDK、批次、匯出與合作夥伴重試執行拒絕測試。