d36bb954d1
Baseline before backporting wp-data-optimizer v3.0.1-v3.4.6. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TbG1keQQ7XBa7qMQY16KCY
77 lines
1.9 KiB
Markdown
77 lines
1.9 KiB
Markdown
# 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。
|