安全政策¶
支援版本¶
只有以下版本的 NextPDF 套件獲得安全修補支援:
| 套件 | 目前版本 | 安全支援 |
|---|---|---|
nextpdf/core | ✓ | |
nextpdf/pro | ✓ | |
nextpdf/enterprise | ✓ | |
| 其他 LGPL 套件 | 最新版 | ✓ |
回報漏洞¶
負責任揭露政策¶
我們遵循負責任揭露(Responsible Disclosure)原則。請勿透過公開的 GitHub Issue 回報安全漏洞。
回報方式¶
電子郵件:[email protected]
PGP 公鑰:
回應時間承諾:
| 里程碑 | 時間目標 |
|---|---|
| 確認收到回報 | 24 小時內 |
| 初步嚴重性評估 | 72 小時內 |
| 修補方案確認 | 14 天內(視複雜度) |
| 安全更新發布 | 30 天內(重大漏洞優先) |
| CVE 編號申請 | 修補發布後 7 天內 |
| 公開揭露 | 修補發布後 90 天,或協議時間 |
回報內容建議¶
請在回報中包含:
- 受影響的套件名稱與版本
- 漏洞類型(如 OWASP Top 10 分類)
- 重現步驟(最小可重現範例)
- 預期行為與實際行為
- 潛在的影響評估
- (可選)建議的修補方向
保密協議¶
在公開揭露前,我們承諾:
- 對回報者的個人資訊嚴格保密
- 不採取任何法律行動(針對善意回報)
- 在 CVE 描述與安全公告中公開致謝(若回報者同意)
漏洞評分¶
我們使用 CVSS v3.1 評估漏洞嚴重性:
| 嚴重性 | CVSS 分數 | 目標修補時間 |
|---|---|---|
| 重大(Critical) | 9.0–10.0 | 24–48 小時 |
| 高(High) | 7.0–8.9 | 7 天 |
| 中(Medium) | 4.0–6.9 | 30 天 |
| 低(Low) | 0.1–3.9 | 下一個定期版本 |
已知 CVE¶
目前無已知未修補的安全漏洞。
安全最佳實踐¶
PDF 生成安全¶
// 永遠驗證使用者輸入
$text = filter_var($userInput, FILTER_SANITIZE_STRING);
// 敏感文字永遠不應出現在 PDF 串流中
// 使用 TextPreprocessorInterface 進行預先處理
$document->text()->registerPreprocessor(new RedactionPreprocessor());
// 設定適當的 PDF 權限
$permissions = Permissions::create()
->denyModification()
->denyContentCopying();
環境安全¶
// 永遠從環境變數讀取敏感設定
$certificate = SigningCertificate::fromPkcs12(
path: '/certs/signer.p12',
passphrase: $_ENV['CERT_PASSPHRASE'], // 不要寫死
);
// 不要在日誌中記錄 PDF 密碼或憑證密碼
$logger->info('PDF generated', ['document_id' => $id]); // 只記錄 ID
Artisan(Chrome)安全¶
密碼學安全¶
安全稽核日誌¶
NextPDF 採用多層安全分析:
- PHPStan Level 10:靜態型別分析,每次 CI 執行
- SonarQube SAST:持續整合安全掃描(SAST)
- Composer audit:依賴套件已知漏洞掃描
- 定期第三方安全審計:
安全更新訂閱¶
- GitHub:在各套件儲存庫啟用 Security Advisories 通知
- 電子郵件列表:發送主旨為
SUBSCRIBE security的郵件至 [email protected]