# Security Policy ## Supported versions | Version | Supported | |---|:-:| | 0.1.x | ✅ | > 來源外掛 `wp-data-optimizer v2.x` 仍接受安全修補,但新功能不再回 port。 --- ## Reporting a vulnerability 請勿在 public GitHub issue 揭露安全問題。透過以下管道私下回報: - Email: security@2meet.io - PGP key: TBD(首次回報時索取) 我們承諾: - 24h 內初步回應 - 7 天內提供修補時程 - 90 天內出 patch release(CVSS ≥ 7 立即出版) --- ## 安全設計重點 ### Crypto - AES-256-GCM AEAD(v2 格式 `enc:v2:`) - v1 (AES-256-CBC `enc:v1:`) 向後相容讀取 - Auth tag 16B + tamper detection - Key 衍生自 `AUTH_KEY` + `SECURE_AUTH_SALT`,每站獨一 ### SQL injection - 100% `$wpdb->prepare()`,含動態 IN 子句用 `array_fill('%d')` 動態佔位符 - 欄位名走 `sanitize_key()` - DROP TABLE 前白名單 + prefix 雙重驗證 ### Authorization - Capability 檢查:`manage_options`(admin tab)/ `edit_posts`(部分 REST) - Nonce 驗證所有 AJAX + 表單 ### Output / Input - 輸出:`esc_html()` / `esc_attr()` / `esc_url()` - 輸入:`sanitize_text_field()` / `absint()` / `wp_unslash()` - Unserialize:`WPDO_Safe_Unserialize::run()`(`['allowed_classes' => false]`) ### File upload - 不接受 file upload。 ### Rate limiting - REST endpoints 採 transient-based limiter(見 `class-tmdo-rest-api.php`) --- ## 已知 Risk - (本版本暫無已知安全 risk;Phase 1 ship 時補) --- ## 來源外掛安全沿革 - v2.6.4 H-4:加密 Slack/Discord/Telegram 密鑰 - v2.6.5 A-4:Spoke 明文 JWT 持久化完全移除 - v2.13.3 audit 7/7 finding 全清零(M-AUTH-1 / M-LOGIC-1 / L-AUTH-1 / L-CFG-1 / L-DESER-1 / L-SSRF-1 / L-CRYPTO-1) - v2.15.0 AES-256-CBC → AES-256-GCM AEAD 升級 詳見 `~/.claude/plans/wp-data-optimizer-2meet-data-optimizer-zesty-liskov.md` § 1.1。