一介資男(Mxp.TW) 開發工具箱
一介資男(Mxp.TW) 開發工具箱

一介資男(Mxp.TW) 開發工具箱

5/5 (1 ratings) 100 active installs Updated Nov 9, 2026
<p>** 常用外掛操作列表 ** - 作者常用外掛安裝、啟用批次操作區域。</p>

<p>** 常用外掛操作列表 ** - 作者常用外掛安裝、啟用批次操作區域。</p>

一介資男(Mxp.TW) 開發工具箱不是單一功能外掛,而是一個 WordPress 開發、維運、搬站與站點管理工具包。套件內含主要工具箱與四個可獨立啟用的子外掛,讓管理員只啟用目前站台需要的能力。
整套外掛最低支援 WordPress 5.5 與 PHP 7.4;各項第三方整合仍須同時符合該第三方外掛版本本身的最低環境需求。

套件架構

  • Dev Tools - Mxp.TW:主要工具箱。提供外掛/主題安裝、打包、取代、資料庫維護、網站設定檢視與檔案異動檢查。
  • Dev Tools: Snippets - Mxp.TW:常用維運片段。集中處理安全強化、登入/後台調整、媒體上傳政策、報告排程與網域到期檢查。
  • Dev Tools: Site Manager - Mxp.TW:多站管理輔助。匯出/匯入站台資訊,並以 passkey、加密 token 與 HMAC 提供跨站快速登入。
  • Dev Tools: Hide Login Page - Mxp.TW:登入路徑防護。將預設登入入口改為自訂路徑,並把原始登入與未登入後台入口導向 404。
  • Dev Tools: Feedback Reporter - Mxp.TW:登入用戶全站問題回報。前台與後台可擷取目前頁面、錄製短片、標註截圖、填寫描述後由本站安全轉送 webhook。

Dev Tools – Mxp.TW(主要工具箱)

主要工具箱面向高權限管理員與開發者,功能集中在「安裝、搬站、檢查、替換」:

  • 開發常用外掛清單:從遠端清單與 WordPress.org API 取得外掛資訊,支援安裝、更新與啟用。
  • Themeforest List:輸入 Envato 或 MXP 授權碼後,列出可下載的主題、外掛與其他檔案,並支援線上安裝。
  • 外掛搜尋工具:在後台嵌入作者整理的外掛搜尋介面,從可信來源帶回下載連結後安裝。
  • 外掛/主題打包:可從外掛列表、主題工具、最近異動檔案、wp-content 或 wp-config.php 產生 ZIP 下載。
  • 外掛/主題取代:上傳 ZIP 後解析外掛或主題資訊,比對既有項目,取代前建立備份,失敗時回滾。
  • 調整內容作者工具:依 Post Type 批次改寫內容作者。
  • 查看網站各項設定:顯示外部網路資訊、wp-config.php 常數、使用者定義常數、.htaccess 與 .user.ini。
  • 主機 PHP 設定:在 phpinfo() 可用時顯示 PHP/主機設定。
  • 資料庫檢視與匯出:列出資料庫與資料表,支援單表、全表、背景 SQL 匯出與 wp-content 打包。
  • 資料庫關鍵字取代:以 Search Replace DB 類別處理序列化資料安全的預覽與實際取代。
  • WP 資料庫最佳化:檢視大型 autoload options,清理 orphan/duplicate meta、未使用 option、使用者 metabox,也提供重置 WordPress 的高風險操作。
  • 查看最近變更檔案:掃描並分類近期異動的核心、上傳、主題、外掛與其他檔案。
  • Hook 執行時間除錯:登入狀態下加上 ?debug 時,在 admin bar 顯示 hook 執行時間統計。

Dev Tools: Snippets – Mxp.TW(常用片段與站台行為)

Snippets 子外掛會直接接管多個 WordPress hook,適合用 wp-config.php 先定義 MDT_* 常數後再啟用。

  • 安全強化:停用 XML-RPC;匿名 REST Users 路由統一回 404;原生作者頁與使用者 sitemap 不提供帳號枚舉;設定過公開顯示名稱的作者會連到同名作者的專用搜尋,login 衍生的預設「小編」維持不可點擊;oEmbed、傳統佈景與區塊佈景共用作者顯示名遮蔽;另移除多種前端 metadata/oEmbed/shortlink 輸出、隱藏頭像並停用 self-ping。
  • HTTP 標頭:動態前台回應會停用舊式瀏覽器 XSS Auditor,輸出 MIME sniffing、同源 frame、cross-domain policy 與 referrer policy 防護;HSTS 應由 nginx、Apache、Load Balancer 或 CDN 在所有 HTTPS 回應統一設定。script-src 等資源載入 CSP 不由此外掛預設接管。
  • 檔案修改保護:預設啟用 DISALLOW_FILE_MODS / DISALLOW_FILE_EDIT,並保護指定管理員不被一般後台列表、編輯、刪除或降權流程影響;WordPress 原生背景更新器只在 WP-Cron 的 wp_maybe_auto_update 執行期間取得窄範圍例外。
  • 登入與後台調整:登入頁 Logo、登入後導向、管理信箱同步、註冊開關、封鎖使用者登入、顯示內容/分類/使用者 ID、使用者註冊時間欄位、隱藏非管理員更新提示與 Customize 選單。
  • Security Monitor:預設只記錄並通知可採取行動的資安事件,不取代一般 Activity Log。涵蓋管理員登入、暴力登入聚合、失敗後成功登入、管理員/高風險權限授予、管理員 Application Password、新上傳外掛啟用,以及 Core checksum 異常。
  • Heartbeat 負載控制:後台登入狀態、nonce、自動儲存、文章/訂單鎖等輪詢的最短間隔預設設為 60 秒,背景分頁仍沿用 Core 的 120 秒策略;公開前台預設不載入 Heartbeat,後台、登入頁與 Customizer 預覽不受影響。
  • 登入頁 Logo:在 WordPress 載入前定義 MDT_LOGINPAGE_LOGO_URL;只接受不含帳密的 HTTP/HTTPS URL。中文網域、路徑、查詢與 fragment 會正規化為 Punycode/percent-encoding,既有 %XX 編碼不會重複處理。
  • 媒體與上傳政策:可停用縮圖產生、停用大圖縮放、上傳圖片大小限制、自動填入圖片標題/alt/content,並對特權管理員與一般使用者套用不同的檔案大小與 MIME 規則。
  • Bot/垃圾防護:WordPress 公開登入、註冊、忘記/重設密碼、多站註冊、留言與文章密碼表單,以及 WooCommerce、Contact Form 7 已支援表單,預設使用 action-bound honeypot、短效簽章 token 與前端 PoW;未安裝選用外掛時不會攔截請求。
  • 留言預設白名單:新內容預設只讓 post 開放留言,page、附件、商品與其他自訂 post type 預設關閉;首次由管理員載入後台時,既有非白名單內容也會一次性關閉,但保留既有留言。
  • 前台 Basic Auth:可啟用簡易前台驗證,並以指定 query key/cookie 暫時略過。
  • 外部 HTTP 請求管控:可封鎖指定網域,或啟用全域封鎖後只允許白名單。
  • 站台健康回報與自動更新:站台資訊回報使用獨立排程;Core minor、安全性修正版、翻譯,以及已啟用自動更新的外掛與佈景主題交由 WordPress 原生背景更新器處理。
  • 網域到期檢查:Dashboard widget 顯示 home_url()、site_url()、多站、額外指定網域與 filter 網域的 RDAP/WHOIS 結果,包含到期日、註冊商、狀態、DNSSEC、Name Server、原始資料與通知狀態。

背景更新設定

  • MDT_ENABLE_CRON_AUTO_UPDATE:預設 true。即使 MDT_DISALLOW_FILE_MODS 啟用,也只在 WP-Cron 正在執行 WordPress 原生 wp_maybe_auto_update 時允許 automatic_updater context;離開該 call stack 後立即恢復封鎖。Core 是否更新仍遵守 WP_AUTO_UPDATE_CORE、auto_update_core_minor、版本分支、PHP/資料庫相容性、檔案系統與 VCS 檢查;外掛與佈景主題只更新已啟用自動更新的項目。設為 false 可取消此外掛提供的背景更新例外。

Heartbeat 設定:

  • MDT_HEARTBEAT_INTERVAL:後台 Heartbeat 最短輪詢秒數,預設 60,只接受 15~120;超出範圍會回退為 60。WordPress 6.0 以上使用 Core 原生 minimalInterval,WordPress 5.5~5.9 避開舊版毫秒換算錯誤並以前端 interval guard 提供相同行為。設定值不應超過 120 秒,避免逼近 Core 150 秒文章/WooCommerce 訂單鎖的失效窗口。
  • MDT_DISABLE_FRONTEND_HEARTBEAT:預設 true,會在公開前台 deregister Core heartbeat script handle,包含第三方外掛 enqueue 的同一 handle。若前台會員、協作或即時狀態功能明確依賴 Heartbeat,請在 wp-config.php 設為 false。此外設定不攔截 admin-ajax.php,因為已登入前台與後台 Heartbeat 共用同一個 authenticated AJAX action,伺服器端無法可靠區分來源而不誤傷後台。

Security Monitor 設定與行為:

  • MDT_ENABLE_SECURITY_MONITOR:預設 true。設為 false 會停止事件 hook 與排程,但不刪除既有紀錄。
  • MDT_SECURITY_NOTIFICATION_EMAIL:主要通知收件人;空字串時使用該站 admin_email。每封通知還會合併 MDT_DISALLOW_FILE_MODS_ADMINS 內有效使用者的 email 並去重;未自行指定該常數時,MDT 預設會由目前管理員與多站 Super Admin 建立名單,若在 wp-config.php 明確限制名單,其他管理員不會自動加入。通知採純文字分區格式,以中文顯示事件名稱、網站時區、異常檔案與處理建議,不再直接輸出內部 JSON。mxp_security_notification_email 可調整主要地址,mxp_security_notification_recipients 可調整最終地址陣列,另有 subject/message filters。
  • MDT_SECURITY_RETENTION_DAYS:資安事件預設保留 360 天;登入聚合 bucket 只保留 24 小時。每個帳號另以 HMAC IP identity 保存最多 5 個成功登入來源摘要,用於 360 天內的新/曾見來源判斷;超出判斷視窗的摘要會在該帳號下次成功登入時清除,user meta 不保存原始 IP。每日排程以有上限的批次清理事件資料,停用外掛不刪除資料,移除整套外掛時才清除資料表、來源摘要與狀態。
  • 登入失敗以 5 分鐘 bucket 聚合並保存 HMAC account/IP identity;同帳號約 10 分鐘 5 次進入 warning、約 15 分鐘 10 次進入 high,同 IP 對多帳號與多 IP 對管理員的集中攻擊另行建立事件。通知依規則與時間窗去重。
  • 動態 PoW 只提高攻擊來源的 login/woocommerce_login challenge;warning 為 20 bits、high 為 22 bits,其他表單與未命中風險的正常登入維持 MDT_HONEYPOT_POW_DIFFICULTY。不使用 sleep()、永久鎖帳號或單純 IP block,風險在 10~15 分鐘後自動失效。
  • 管理員正常登入會通知;任何帳號若同帳號或同來源最近已有至少 5 次失敗後成功登入,都會建立 critical incident。登入與敏感操作通知會顯示解析後 Client IP、可信代理路徑、公開/私有保留類型、帳號來源新舊判斷及清理後、最多 500 字元的 User-Agent;這套證據不依賴 Cloudflare,可信 Cloudflare 國別 Header 只作額外提示。管理員異常登入後 30 分鐘內建立管理員、Application Password 或啟用上傳外掛,會追加到原 incident 並把敏感操作通知升級為 critical。一般使用者註冊、正常登入與日常內容操作不建立 incident 或通知;成功登入只維護上述有界 HMAC 來源摘要。
  • MDT_SECURITY_IP_INTELLIGENCE:預設 true;MDT_SECURITY_IP_INTELLIGENCE_MODE 預設 local_with_remote_fallback。只有實際要寄資安通知且來源為公開 IP 時才查詢:先讀取站內 MMDB,取得國別、ASN 與網路組織;只有本機資料不存在、損壞或查無該 IP 時才以 HTTPS 呼叫 IPWhois.io。通知會明確標示本機資料或遠端備援。私有/保留 IP 不查詢,且所有 IP 情報都只作調查線索。
  • 本機資料使用 sapics/ip-location-db 的 server-country.mmdb 與 origin-asn.mmdb(資料授權 PDDL-1.0),透過隨外掛封裝的 MaxMind DB Reader 1.14.0(Apache-2.0)讀取。啟用後 5~15 分鐘內排入首次背景下載;每日維護排程只檢查資料是否已滿 7 天,需更新時才下載。MDT_SECURITY_IP_DATABASE_UPDATE_INTERVAL 可在 1~30 天內調整,MDT_SECURITY_IP_DATABASE_TIMEOUT 預設 30 秒並限制在 5~60 秒。
  • 下載會串流到 uploads 下的暫存目錄、限制每個檔案最多 32 MiB,先驗證官方 release 提供的 SHA-256,再驗證 MMDB metadata;兩個檔案全部通過後才以同檔案系統 rename 原子切換。更新失敗或最新 generation 損壞時保留並讀取上一份有效資料,初始下載失敗會以 6~24 小時退避,不會隨訪客請求密集重試,也不會阻斷登入、PoW、網站請求或 WP-CLI。多站共用主站 uploads 內一份資料;停用外掛會取消排程但保留資料,移除外掛才刪除。
  • MDT_SECURITY_IP_INTELLIGENCE_MODE 可設為 local_with_remote_fallback、local_only、remote_only 或 disabled;local_only 永不把 IP 傳送給情報服務。mxp_security_ip_intelligence_mode、mxp_security_ip_database_directory 與 mxp_security_ip_database_assets filters 可供受控環境調整模式、儲存位置與來源。無效模式會安全回退到預設 local-first。
  • 遠端備援沿用 MDT_SECURITY_IP_INTELLIGENCE_TIMEOUT/MDT_SECURITY_IP_INTELLIGENCE_CACHE_TTL:timeout 預設 1.0 秒並限制在 0.5~3.0 秒;成功結果快取至少 7 天、失敗 1 小時、限流 6 小時。IPWhois.io 會收到被查詢的公開 IP;mxp_security_ip_intelligence_url 可替換固定 HTTPS provider URL。查詢失敗時直接降級寄送原始事件。
  • 公開 IP 通知同時提供 IPWhois、AbuseIPDB 與 VirusTotal 的人工調查連結;私有/保留 IP 不產生外部連結。地理位置、ISP、ASN、代理狀態與 User-Agent 都可能不精確或遭偽造,不能單獨作為入侵或封鎖結論。
  • MDT_SECURITY_CORE_CHECKSUM:預設 true。每日以 WordPress.org checksum API 啟動,單批最多 200 個檔案或 8 MiB,透過單次排程續跑,不在一般前台請求同步掃描;Core 更新完成後延遲 10 分鐘重查。檔案比對由 MDT 內建 PHP 驗證器執行,不需要主機安裝 WP-CLI;通知的「事件觸發環境」只表示該次事件由 WP-Cron、WP-CLI 排程或網站請求中的哪一種環境建立。只在結果 fingerprint 改變時通知,恢復正常時通知一次,API 連續失敗 3 次才發操作警告。若停用訪客觸發的 WP-Cron,主機仍須以 system cron 定期呼叫 wp-cron.php。
  • Core checksum 會略過 wp-content,檢查已知 Core 檔案的遺失/修改,並找出 wp-admin、wp-includes 額外 PHP;當 MDT_DELETE_XMLRPC_PHP/MDT_DELETE_INSTALL_PHP 啟用時,對應檔案遺失視為 MDT 預期狀態,檔案若仍存在且 checksum 正確也不會被誤判成額外 PHP,只有存在但內容遭修改才會通報。通知中的 wp core verify-checksums 只是不影響自動偵測的選用人工複核方式。
  • MDT_SECURITY_TRUST_PROXY_HEADERS:預設 true,但只有 REMOTE_ADDR 位於內建/快取的 Cloudflare 官方 CIDR 或明確加入的可信代理 CIDR 時才解析轉送鏈;CF-Connecting-IP 與 CF-IPCountry 只在直接來源是 Cloudflare 時採信。
  • MDT_SECURITY_ADDITIONAL_TRUSTED_PROXY_CIDRS:自家 Load Balancer/reverse proxy 的單一 CIDR、逗號字串或陣列。mxp_security_trusted_proxy_cidrs filter 可調整最終清單;不可把不受控的公開網段列為可信代理。
  • MDT_SECURITY_CLOUDFLARE_IPS_AUTO_UPDATE/MDT_SECURITY_CLOUDFLARE_IPS_CACHE_TTL:預設自動更新 Cloudflare 官方 CIDR,快取 7 天;下載失敗保留上一份有效清單或內建 fallback,不在登入請求即時抓取網路資料。

安全標頭設定:

  • MDT_ENABLE_SECURITY_HEADERS:預設 true。控制 Snippets 對 WordPress 動態前台回應加入的安全標頭與同源 frame 防護;設為 false 不會移除 nginx、Apache、Load Balancer 或 CDN 在 WordPress 外層設定的標頭。

登入後跳轉設定:

  • MDT_ENABLE_LOGIN_REDIRECT:預設 true。登入請求帶有 WordPress 驗證通過的明確 redirect_to 時優先返回該位置;未指定時,editor、administrator、author、shop_manager 會前往後台,其他角色沿用 WordPress 原始目的地。設為 false 時完全交回 WordPress 處理。
  • mxp_dev_admin_roles filter:調整未指定 redirect_to 時要導向後台的角色清單。

留言開關政策:

  • MDT_ENABLE_COMMENT_DEFAULT_CLOSED:預設 true。設為 false 時不改寫新內容預設值、不執行一次性遷移,也不攔截既有項目的留言狀態;若先前已完成遷移,停用功能不會自動還原已儲存的 comment_status。
  • MDT_COMMENT_DEFAULT_OPEN_POST_TYPES:新內容預設開放留言的 post type,預設為 array('post')。可在外掛載入前以 wp-config.php 常數替換完整陣列,或使用 mxp_dev_comment_default_open_post_types filter 調整。
  • 功能啟用後,具 manage_options 權限的管理員首次載入該站後台時,會把既有且不在白名單內的 comment_status=open 一次性改為 closed;既有留言與 ping_status 不變。多站環境各站分別執行。
  • 白名單只決定新內容的預設值與首次遷移範圍,不是永久封鎖規則。遷移完成後以 WordPress 原生單篇「允許留言」狀態為準:管理員可手動開放任何頁面、附件、商品或 CPT,也可關閉單篇文章。日後增加白名單 post type 不會自動重開舊內容。
  • 更新後應清除頁面/CDN 快取,避免已關閉內容的舊快取仍顯示表單;WordPress 接收留言時仍會依資料庫狀態拒絕已關閉項目。

Honeypot 常用設定與行為:

  • MDT_ENABLE_LOGIN_BOT_FUCKOFF:預設 true。保護 WordPress 登入、註冊、忘記密碼、重設密碼、多站註冊及文章密碼表單。
  • MDT_ENABLE_COMMENT_SPAM_FUCKOFF:預設 true。保護 WordPress 標準留言與附件留言。
  • MDT_ENABLE_WOOCOMMERCE_HONEYPOT:預設 true。完整保護 WooCommerce My Account/Classic 登入、註冊、忘記密碼、重設密碼,以及 Classic 商品評論與 woocommerce/product-review-form block。標準 form hook/comment_form() 會正常注入;主題覆寫模板即使漏掉內部 hook,只要仍由 WooCommerce wc_get_template() 載入並保留原生提交欄位,也會由 template fallback 精準補入一次。未安裝 WooCommerce 時不會攔截一般請求;可在外掛載入前定義為 false 關閉整合。
  • MDT_ENABLE_CONTACT_FORM_7_HONEYPOT:預設 true。保護 Contact Form 7 表單,challenge 綁定個別表單 ID,驗證失敗由 Contact Form 7 原生 spam 流程處理。未安裝 Contact Form 7 時不會攔截一般請求;可在外掛載入前定義為 false 關閉整合。
  • MDT_HONEYPOT_MIN_SECONDS:challenge 簽發後最短可提交秒數,預設 2。
  • MDT_HONEYPOT_POW_DIFFICULTY:所有受保護表單的 SHA-256 Hashcash 前導零位元難度,預設 18,有效範圍 8~24;每增加一位,平均求解量約加倍。實際時間依裝置與瀏覽器而異,無法保證固定秒數。
  • MDT_HONEYPOT_POW_MAX_SECONDS:所有受保護表單的 PoW challenge 最長有效秒數,預設 60,有效範圍 3~300。
  • 所有已支援表單都要求 payload-bound PoW。challenge 僅簽署 action、context、時間、難度與隨機值;密碼和表單內容不會為取得 challenge 而額外傳到 token endpoint。Worker 在本機將 challenge、最終 scalar 表單 payload hash 與 counter 一起求解,伺服器由最終 POST 重建 payload hash 後無狀態驗證。
  • 前端會在輸入停止後背景準備 proof;即使瀏覽器或密碼管理器直接自動填入帳密而未觸發 input event,送出攔截器仍會重新讀取當下 FormData、等待 proof 完成,再恢復原生 submit event。計算期間提交按鈕會暫停並以 aria-busy/live status 表示;Worker、Web Crypto 或 challenge endpoint 失敗時保留表單內容並顯示錯誤,不會送出一個必定被後端拒絕的請求。
  • payload canonicalization 支援 scalar、重複欄位與巢狀陣列,統一換行並排除 token、proof、動態誘餌及由 reCAPTCHA/hCaptcha/Turnstile 自行驗證且可能在 submit listener 後才產生的短效 response。檔案 input 的二進位內容不納入 payload hash,但同一份表單的其他欄位仍須完成 PoW。
  • challenge endpoint 使用帶隨機 request nonce 的 no-store POST;前端不採用 HTML 內嵌 challenge,而會在求解前重新取得當下風險難度。token 無伺服器 session、資料表或 transient;頁面/CDN 快取、表單 reset 與 BFCache 還原都不會把舊難度固定給後續訪客或放寬後端驗證。完全相同 payload/proof 在有效期內仍可重送,登入節流、留言去重與其他業務限制仍由 WordPress/整合外掛處理。
  • 版本更新後須清除既有頁面/CDN 快取,並確認 admin-ajax.php?action=mxp_honeypot_token 的 POST 不被快取;舊版 v2/v3 token 與未載入新版 Worker 的表單會 fail closed。
  • 主題直接 include 自製表單、移除 WooCommerce 原生 nonce/提交欄位、改走自訂 AJAX/REST endpoint,已脫離 WooCommerce template/hook 契約,無法安全推斷表單語意,必須另外使用對應的輸出與 server-side 驗證 hook 整合。WPForms,以及 WooCommerce Checkout Blocks/Store API 結帳建帳與 Order Confirmation 延後建帳,目前也不在保護範圍內。

網域到期檢查常用設定:

  • MDT_DOMAIN_EXPIRY_CHECK:是否啟用網域到期檢查,預設 true。
  • MDT_DOMAIN_EXPIRY_NOTICE_DAYS:到期通知門檻,預設 90, 60, 30, 14, 7, 3, 1 天。尚未到期會顯示剩餘天數與命中的門檻;今天到期與已過期改用獨立狀態,已過期會顯示逾期天數、緊急主旨與立即續約建議,不會再顯示負數天數或「到期前 1 天」。既有未到期門檻沿用原去重 key,避免只因信件改版重寄;已過期狀態只對同一到期時間通知一次。
  • MDT_DOMAIN_EXPIRY_EXTRA_DOMAINS:額外指定檢查網域,支援陣列或逗號分隔字串。
  • MDT_DOMAIN_EXPIRY_OBSERVE_HOSTS:是否自動記錄非設定來源的 HTTP_HOST,預設 false。
  • MDT_DOMAIN_EXPIRY_OBSERVED_HOST_RETENTION_DAYS:觀察到的 HTTP_HOST 紀錄保留天數,預設 180。
  • MDT_DOMAIN_EXPIRY_MAX_DOMAINS_PER_RUN:單次排程最多查詢數量,預設 20。
  • MDT_DOMAIN_EXPIRY_STORE_RAW_DATA:是否儲存 RDAP/WHOIS 原始資料,預設 true。
  • 網域通知採純文字分區格式,使用網站時區並列出查詢網域、到期時間、目前狀態、註冊商、RDAP/WHOIS 來源與建議處理。mxp_domain_expiry_notice_subject、mxp_domain_expiry_notice_message filters 可調整最終主旨與內容。

Dev Tools: Site Manager – Mxp.TW(多站管理)

Site Manager 用來把多個 WordPress 站台整理成一個維運主控台,同時保留既有匯出/匯入與快速登入流程。

  • 匯出目前站台資訊:包含站台 URL、站名、管理員信箱、IPv4、IPv6、DNS A/NS 記錄、Whois/網域到期資訊、Site Manager 版本、登入協議版本、外掛/佈景主題/核心更新、PHP/MySQL 版本、檔案異動、cron 狀態與環境快照。
  • 匯入其他站台匯出的設定字串,經格式、URL、passkey 與欄位結構驗證後仍儲存在 mxp_dev_sites_info_db 站台選項;新版主控台會同步寫入 mxp_sm_sites、mxp_sm_site_credentials、mxp_sm_site_snapshots、mxp_sm_site_events、mxp_sm_site_jobs、mxp_sm_site_job_logs 等資料表。
  • 主控台顯示總覽卡片、站台狀態、環境/客戶/標籤備註、更新數、網域到期、最近 heartbeat、事件紀錄與遠端工作紀錄;後台輸出會移除 passkey/secret/token/HMAC/signature 並轉義顯示內容。
  • 快速登入:新版站台使用具版本標記的加密 token、HMAC-SHA256、audience、jti 與 15 秒時間窗;目標站會以 transient 防止同一 token 重放。舊版匯入資料仍維持相容的 legacy token,建議重新匯入以升級登入協議。
  • 安全配對:先以既有匯出字串內的 passkey 作一次性 bootstrap,完成後改用獨立 remote secret;Hub/Agent REST 請求使用 HMAC-SHA256 簽署 canonical request、5 分鐘時間窗與 replay 防護。
  • 遠端控制開放 Level 0/1 安全動作:heartbeat、capabilities、inventory、refresh_snapshot、clear_object_cache、flush_rewrite_rules、trigger_cron、rotate_pair_credential、issue_login_ticket。一次性登入票券只在當次 AJAX 回應交付,不寫入 job 結果或 dashboard state。
  • Level 2 中風險操作已提供基本中控能力:update_plugin、update_theme、update_core_minor、activate_plugin、deactivate_plugin。每站預設關閉,需在該站 policy 啟用;production 站另需勾選 production Level 2。所有 Level 2 都必須先 dry-run,由後端簽發 10 分鐘 confirmation token,execute 時再驗 token;同站同時只允許一個 Level 2 running job,multisite execute 預設拒絕。
  • Level 3(DB search replace/reset、刪除或任意安裝外掛/佈景、編輯檔案、使用者/角色變更等)仍預設未實作且政策拒絕,不顯示可執行按鈕。
  • 重置站台密鑰:刪除本機 passkey 並在下次使用時重建;既有匯出字串會因此失效,已配對的 remote secret 也應解除配對後重新建立。
  • 支援單站 Tools 頁面與 multisite Network Admin 頁面;頁面與 AJAX 使用同一個可 filter 的 capability。

匯出的字串包含 passkey,等同可請求快速登入與配對 bootstrap 的高權限憑證。請只在可信任管理員與可信任傳輸渠道中保存或分享;若曾外洩,請立即重置站台密鑰、解除配對並重新匯出/配對。

Dev Tools: Hide Login Page – Mxp.TW(登入路徑防護)

Hide Login Page 沒有設定頁,透過常數控制:

  • MDT_LOGIN_PATH:預設 admin-staff,登入網址會變成 /admin-staff/;未啟用 pretty permalink 時使用 /?admin-staff。預設字串與外掛原始碼都是公開資訊,正式站必須在 WordPress 載入前定義每站不同且不可預測的值。
  • MDT_LOGIN_PATH_DISPLAY:預設 true;設為 false 時可在外掛列表隱藏此子外掛。

啟用後,wp-login.php、/login、wp-register、wp-activate 與非 multisite 的 wp-signup 會走 404 流程;未登入的 /wp-admin/ 請求也會被導到 /404。此外掛也會改寫 WordPress 產生的登入 URL、redirect URL、welcome email 中的登入連結,以及 WooCommerce 密碼重設連結。公開文章密碼表單會改用只接受 POST action=postpass 的原生處理入口,不再輸出自訂登入路徑。
登入路徑隱藏只能降低通用掃描雜訊,不是身分驗證或存取控制。若主題、區塊、小工具或第三方外掛刻意向匿名訪客輸出 wp_login_url()/註冊連結,自訂路徑仍會出現在公開 HTML;此需求與「路徑不可公開」互斥,應移除該公開登入元件,並另外啟用強密碼、MFA、速率限制與此外掛的登入 honeypot。

Dev Tools: Feedback Reporter – Mxp.TW(全站問題回報)

Feedback Reporter 沒有設定頁,透過 MDT_FEEDBACK_REPORTER_* 常數控制。啟用外掛後預設啟用回報功能;只允許登入並符合 role / user ID 規則的使用者在前台與後台看到回報入口。若要關閉,可在 wp-config.php 將 MDT_FEEDBACK_REPORTER_ENABLE 定義為 false。

  • 前台使用明確的「回報問題」浮動按鈕;後台使用低干擾的小型「回報」入口,避免遮住主要操作或一直提醒使用者回報。
  • 使用者點擊後才啟動回報流程,可選擇擷取目前頁面「當下捲動視野」,或開啟獨立錄影控制器錄製最長 60 秒短片;控制器留在獨立視窗中,原頁跳轉或重新整理不會中斷錄影,錄影中會顯示倒數與停止按鈕,不必錄滿一分鐘。
  • 截圖模式可在截圖上畫框、箭頭、文字、自由畫筆與馬賽克;錄影模式會送出錄影檔與自動產生的封面截圖。若自動 DOM 截圖無法呈現互動畫面,可上傳 PNG/JPEG/WebP 或從剪貼簿貼上外部截圖取代,再填寫問題描述。
  • 前端只送到本站 REST endpoint;webhook URL 與 secret 不會輸出到瀏覽器。
  • WordPress server-side 驗證登入、nonce、role/user ID、rate limit、截圖與錄影 MIME,並在 webhook 前重新檢查與壓縮截圖大小;未設定 webhook 時仍會保存本機 log/截圖/錄影,設定 webhook 後才送出外部通知;匿名回報也會保存解析後的回報 IP 與 IP hash,方便追蹤濫用來源。
  • 回報 IP 會優先使用可信任反向代理還原出的真實用戶 IP:預設會從 Cloudflare 官方 ips-v4 / ips-v6 清單取得並快取可信 edge CIDR,抓取失敗時才回退到內建 Cloudflare 範圍;只有當 REMOTE_ADDR 落在可信代理 CIDR 內才讀取 CF-Connecting-IP、CF-Connecting-IPv6、True-Client-IP、X-Real-IP、Forwarded 或 X-Forwarded-For,避免直接打到 origin 的請求偽造 client IP header。若 origin 已由防火牆限制只能經 Cloudflare 進站,也仍建議保留此閘門作為防呆;不建議無條件信任 header。
  • log 目錄預設在 wp-content/uploads/mxp-dev-tools/feedback-reporter/,每次回報會寫入不可預測的隨機子目錄與隨機檔名;Apache/LiteSpeed 會透過 .htaccess 關閉目錄列表並拒絕 JSON log 直連,但允許圖片/影片媒體檔讓內部 webhook 連結可直接開啟,nginx 需由站台自行決定是否加上等效規則;再依保留天數與檔案數上限自動清理,移除 Feedback Reporter 子外掛時預設會刪除 log/截圖/錄影。
  • Discord webhook 會以附件方式上傳截圖並在訊息中預覽;Slack incoming webhook 只送出 JSON + Block Kit 文字欄位與 Log / 檔案連結,不使用 image block,避免站台圖片 URL 被主機資安策略阻擋時造成整包通知失敗。

常用常數:

  • MDT_FEEDBACK_REPORTER_ENABLE:是否啟用全站回報,預設 true;可設為 false 關閉。
  • MDT_FEEDBACK_REPORTER_ADMIN_ENABLE:是否在 wp-admin 輸出低干擾後台回報入口,預設 true。
  • MDT_FEEDBACK_REPORTER_ADMIN_BUTTON_MODE:後台入口樣式,預設 subtle-tab,另可用 compact-pill。
  • MDT_FEEDBACK_REPORTER_WEBHOOK_URL:接收回報的 webhook URL;預設要求 HTTPS,未設定時仍可回報並保存本機 log/截圖/錄影,但不送出外部通知。
  • MDT_FEEDBACK_REPORTER_WEBHOOK_FORMAT:webhook payload 格式,預設 auto;Discord 與 Slack incoming webhook URL 會自動送出相容格式,也可設為 generic、discord 或 slack。
  • MDT_FEEDBACK_REPORTER_WEBHOOK_SECRET:webhook HMAC 簽章 secret,預設空字串。
  • MDT_FEEDBACK_REPORTER_WEBHOOK_REQUIRE_HTTPS:是否要求 webhook URL 使用 HTTPS,預設 true;設為 false 時可接受 HTTP,但仍會拒絕 private/reserved IP。
  • MDT_FEEDBACK_REPORTER_WEBHOOK_SSL_VERIFY:是否驗證 HTTPS 憑證,預設 true;設為 false 時可接受自簽憑證。
  • MDT_FEEDBACK_REPORTER_ALLOWED_ROLES:允許回報的角色,預設 administrator。
  • MDT_FEEDBACK_REPORTER_ALLOWED_USER_IDS:額外允許回報的使用者 ID。
  • MDT_FEEDBACK_REPORTER_DENIED_USER_IDS:禁止回報的使用者 ID,優先權最高。
  • MDT_FEEDBACK_REPORTER_DENIED_PATHS:不輸出回報入口的 path prefix,預設只排除 /wp-login.php。
  • MDT_FEEDBACK_REPORTER_LOG_RETENTION_DAYS:本機 log/截圖/錄影保留天數,預設 30。
  • MDT_FEEDBACK_REPORTER_MAX_LOG_FILES:本機 log/截圖/錄影檔案數上限,預設 500。
  • MDT_FEEDBACK_REPORTER_TRUST_PROXY_HEADERS:是否在可信反向代理後方解析真實用戶 IP,預設 true。
  • MDT_FEEDBACK_REPORTER_TRUSTED_PROXY_CIDRS:Cloudflare 官方清單抓取失敗時使用的 fallback Cloudflare 代理 CIDR;此閘門是為了防止繞過 CDN 直打 origin 時偽造 CF-Connecting-IP / X-Forwarded-For。
  • MDT_FEEDBACK_REPORTER_ADDITIONAL_TRUSTED_PROXY_CIDRS:額外信任的自家 proxy / load balancer CIDR,會與 Cloudflare 官方清單合併;為相容舊設定,若 MDT_FEEDBACK_REPORTER_TRUSTED_PROXY_CIDRS 內含不屬於內建 Cloudflare fallback 的 CIDR,也會視為額外可信代理。
  • MDT_FEEDBACK_REPORTER_CLOUDFLARE_IPS_AUTO_UPDATE:是否自動抓取 Cloudflare 官方 IP 清單更新可信代理 CIDR,預設 true。
  • MDT_FEEDBACK_REPORTER_CLOUDFLARE_IPS_CACHE_TTL:Cloudflare IP 清單快取秒數,預設 7 天;抓取失敗時使用上一份有效 transient 或 MDT_FEEDBACK_REPORTER_TRUSTED_PROXY_CIDRS fallback。
  • MDT_FEEDBACK_REPORTER_CLOUDFLARE_IPS_V4_URL / MDT_FEEDBACK_REPORTER_CLOUDFLARE_IPS_V6_URL:Cloudflare IP 文字清單來源,預設 https://www.cloudflare.com/ips-v4 與 https://www.cloudflare.com/ips-v6。
  • MDT_FEEDBACK_REPORTER_MAX_VIDEO_SECONDS:錄影模式最長秒數,預設 60。
  • MDT_FEEDBACK_REPORTER_MAX_VIDEO_BYTES:錄影檔案大小上限,預設 50 MiB。
  • MDT_FEEDBACK_REPORTER_DELETE_LOGS_ON_UNINSTALL:移除 Feedback Reporter 子外掛時是否刪除 log/截圖/錄影,預設 true。

使用風險

  • 此套件設計給可信任管理員、開發者與站台維護者使用,不適合開放給一般後台使用者。
  • 搜尋取代、資料庫最佳化、WordPress 重置、批次改作者、外掛/主題取代都會改寫資料或檔案;操作前請先確認備份可還原。
  • 主要工具箱會讀取並顯示 wp-config.php、.htaccess、.user.ini、PHP 設定與資料庫資訊。
  • ZipArchive、網路連線、檔案系統權限與主機 PHP 限制會影響打包、匯出、安裝、替換與前端回報轉送功能。