跳轉到

安全政策

支援版本

只有以下版本的 NextPDF 套件獲得安全修補支援:

套件 目前版本 安全支援
nextpdf/core
nextpdf/pro
nextpdf/enterprise
其他 LGPL 套件 最新版

回報漏洞

負責任揭露政策

我們遵循負責任揭露(Responsible Disclosure)原則。請勿透過公開的 GitHub Issue 回報安全漏洞。

回報方式

電子郵件:security@nextpdf.dev

PGP 公鑰

回應時間承諾

里程碑 時間目標
確認收到回報 24 小時內
初步嚴重性評估 72 小時內
修補方案確認 14 天內(視複雜度)
安全更新發布 30 天內(重大漏洞優先)
CVE 編號申請 修補發布後 7 天內
公開揭露 修補發布後 90 天,或協議時間

回報內容建議

請在回報中包含:

  1. 受影響的套件名稱與版本
  2. 漏洞類型(如 OWASP Top 10 分類)
  3. 重現步驟(最小可重現範例)
  4. 預期行為與實際行為
  5. 潛在的影響評估
  6. (可選)建議的修補方向

保密協議

在公開揭露前,我們承諾:

  • 對回報者的個人資訊嚴格保密
  • 不採取任何法律行動(針對善意回報)
  • 在 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 的郵件至 security@nextpdf.dev

延伸閱讀