ECShop 官方版本內建多處 API 呼叫,收集店鋪版本、語言、資料庫、訂單/商品/會員統計、模板風格、店鋪 URL、補丁資訊等敏感資料,並上傳至官方伺服器。這不僅洩露商業機密,還可能造成效能拖慢。本文針對 ECShop V2.7.3 UTF8 提供完整移除方案。
搜尋 elseif ($_REQUEST['act'] == 'main_api') (約 489-539 行),刪除整個區塊。
功能:收集 ECShop 版本、PHP/MySQL 版本、編碼、訂單/商品/會員數、模板/風格名稱、店鋪 URL、補丁資訊。
搜尋並刪除:
Ajax.call('index.php?is_ajax=1&act=main_api','', start_api, 'GET', 'TEXT','FALSE');start_api() 與 api_style() 完整定義 (約 234-293 行)搜尋 https://api.ecshop.com/record.php?mod=login&url={$shop_url} (約 25-27 行),刪除整個 <frameset> 區塊。
$spt = '<script type="text/javascript" src="https://api.ecshop.com/record.php? (約 231-243 行),刪除 $spt 變數定義$spt 的輸出位置 (約 245-254 行),僅刪除變數輸出,保留周圍 HTML 結構收集內容:店鋪名稱、標題、描述、關鍵字、國家、省市、QQ、Email、版本號、編碼。
搜尋 '<script language="JavaScript" src="https://api.ecshop.com/menu_ext.php?charset={$charset}&lang={$help_lang}"></script>' (第 143 行),整行刪除。
找到 get_spt_code() 函數,修改回傳值為空字串:
function get_spt_code() {
return ''; // 原本回傳包含店鋪 URL、安裝操作、版本、雜湊、編碼、語言的 JS 代碼
}
同理修改 get_spt_code() 回傳空字串。
| 檢查點 | 預期結果 |
|---|---|
| 後台登入首頁 Network 面板 | 無對 api.ecshop.com 的請求 |
| 儲存商店設定 | 無外部 JS 載入、無資料上傳 |
| 後台左側選單 | 無 menu_ext.js 載入 |
| 安裝程式執行 | 無 API 呼叫 (若重新安裝) |
api.ecshop.com 域名是否在 /etc/hosts 或防火牆封鎖,雙重保險