Skip to content

بهره‌برداری و عیب‌یابی

این فصل عملیات روز دوم، حالت‌های شکست رایج و نکات امنیتی برای تیم‌هایی که پنل را داخلی میزبانی می‌کنند را پوشش می‌دهد.

لاگ سرور Express اولین منبع برای خطای NVD، RSS یا ترجمه است؛ مرورگر فقط وضعیت UI و cache محلی را نشان می‌دهد.

کارایی

اسکن کامل روی پشتهٔ بزرگ بدون NVD_API_KEY ممکن است چند دقیقه طول بکشد. در پنجرهٔ نگهداری اجرا کنید. حالت نظارت باید سبک بماند چون NVD را حذف می‌کند.

مشکلات رایج

علامت علت محتمل اقدام
Too many scan requests / RATE_LIMITED middleware اپ (سطل scan یا watch) retryAfterSec صبر کنید؛ تب‌های اضافه را ببندید؛ RATE_LIMIT_* را در .env بالا ببرید؛ سرور را راه‌اندازی مجدد کنید
نتیجهٔ خالی NVD محدودیت نرخ upstream NVD NVD_API_KEY، کوچک‌کردن پشته، تکرار
زمان منبع کهنه خطای fetch شبکه؛ لاگ سرور
ترجمه گیر کرده ارائه‌دهنده down موقتاً ترجمه خودکار را خاموش کنید
تطبیق مثبت کاذب نام ابزار تقریبی نام‌گذاری پشته؛ بررسی دستی
آیتم جدید watch نیست CVE در knownIds طبیعی؛ اسکن کامل برای تطبیق

امنیت

  • API را بدون احراز هویت در اینترنت عمومی در دسترس نگذارید.
  • GITHUB_TOKEN و NVD_API_KEY فقط در env سرور بمانند.
  • RSS و JSON خارجی ورودی غیرقابل‌اعتماد‌اند — پارس دفاعی در سرور انجام می‌شود.

ارتقا

پس از git pull، npm install، make build و راه‌اندازی مجدد. اگر کلیدهای i18n عوض شد، cache مرورگر را پاک کنید. v1.1.0 ویزارد راه‌اندازی و کش اسکن کلیدشده با پشته را اضافه می‌کند — پشته‌های موجود خودکار مهاجرت می‌شوند؛ نصب‌های تازه یک‌بار ویزارد را طی می‌کنند.

تست خودکار

مجموعه دستور دامنه
واحد + API make test tests/server/، tests/client/، tests/integration/
پوشش (CI) npm run test:ci همان + lcov برای Codecov/Sonar
E2E (Playwright) یک‌بار npm run test:e2e:install، سپس npm run test:e2e tests/e2e/ روی dev server Vite (جریان export CSV)

تست‌های یکپارچگی در tests/integration/ فعلاً pagination NVD را با mirror محلی و AIRGAPPED=true (nvd-pagination.test.ts) پوشش می‌دهند. specهای بیشتر در #78. CONTRIBUTING.md.

پوشش تست (خط پایه CI)

اجرای npm test در حال حاضر ۲۵۷ مورد تست را در واحد سرور، helperهای کلاینت و mirrorهای یکپارچگی پوشش می‌دهد. پوشش CI (npm run test:ci) حدود ۹۴٪ خطوط، ۸۲٪ شاخه‌ها و ۹۴٪ توابع گزارش می‌کند (V8 lcov → Codecov/SonarCloud).

حوزه نمونه فایل‌ها
اعلان‌ها tests/server/notifications.test.ts، notificationEmail.test.ts، notificationTelegram.test.ts
Middleware tenantContext.test.ts، scanTimeout.test.ts، securityHeaders.test.ts
لایه داده pool.test.ts، tenants.test.ts، tenantsDb.integration.test.ts
helper کلاینت exportVulns.test.ts، iconAssets.test.ts، scanCache.test.ts
یکپارچگی tests/integration/nvd-pagination.test.ts

E2E (tests/e2e/export.spec.ts) به Chromium Playwright نیاز دارد — یک‌بار npm run test:e2e:install را اجرا کنید.

نگهداری مستندات

تغییرات محصول باید هر شش درخت extended-docs/docs/content/{locale}/، src/i18n/messages/*.ts و در صورت نیاز docs/ legacy را به‌روز کند. قانون agent code-to-docs-sync (agent/rules/code-to-docs-sync.mdc) — نگاشت مسیر→مستند، واژه‌نامه و scripts/check-extended-docs-locale-sync.sh.

برای audit، RBAC، tenant، متریک، airgap و Kubernetes به ۱۱ self-host مراجعه کنید.

بازگشت به خانه