# Security Policy (ਪੰਜਾਬੀ) 🌐 **Languages:** 🇺🇸 [English](../../../SECURITY.md) · 🇪🇹 [am](../am/SECURITY.md) · 🇸🇦 [ar](../ar/SECURITY.md) · 🇦🇿 [az](../az/SECURITY.md) · 🇧🇬 [bg](../bg/SECURITY.md) · 🇧🇩 [bn](../bn/SECURITY.md) · 🇧🇦 [bs](../bs/SECURITY.md) · 🇨🇿 [cs](../cs/SECURITY.md) · 🇩🇰 [da](../da/SECURITY.md) · 🇩🇪 [de](../de/SECURITY.md) · 🇬🇷 [el](../el/SECURITY.md) · 🇪🇸 [es](../es/SECURITY.md) · 🇪🇪 [et](../et/SECURITY.md) · 🇮🇷 [fa](../fa/SECURITY.md) · 🇫🇮 [fi](../fi/SECURITY.md) · 🇫🇷 [fr](../fr/SECURITY.md) · 🇮🇪 [ga](../ga/SECURITY.md) · 🇮🇳 [gu](../gu/SECURITY.md) · 🇳🇬 [ha](../ha/SECURITY.md) · 🇮🇱 [he](../he/SECURITY.md) · 🇮🇳 [hi](../hi/SECURITY.md) · 🇭🇷 [hr](../hr/SECURITY.md) · 🇭🇺 [hu](../hu/SECURITY.md) · 🇦🇲 [hy](../hy/SECURITY.md) · 🇮🇩 [id](../id/SECURITY.md) · 🇳🇬 [ig](../ig/SECURITY.md) · 🇮🇹 [it](../it/SECURITY.md) · 🇯🇵 [ja](../ja/SECURITY.md) · 🇬🇪 [ka](../ka/SECURITY.md) · 🇰🇭 [km](../km/SECURITY.md) · 🇮🇳 [kn](../kn/SECURITY.md) · 🇰🇷 [ko](../ko/SECURITY.md) · 🇱🇹 [lt](../lt/SECURITY.md) · 🇱🇻 [lv](../lv/SECURITY.md) · 🇮🇳 [ml](../ml/SECURITY.md) · 🇮🇳 [mr](../mr/SECURITY.md) · 🇲🇾 [ms](../ms/SECURITY.md) · 🇲🇹 [mt](../mt/SECURITY.md) · 🇲🇲 [my](../my/SECURITY.md) · 🇳🇵 [ne](../ne/SECURITY.md) · 🇳🇱 [nl](../nl/SECURITY.md) · 🇳🇴 [no](../no/SECURITY.md) · 🇮🇳 [or](../or/SECURITY.md) · 🇵🇭 [phi](../phi/SECURITY.md) · 🇵🇱 [pl](../pl/SECURITY.md) · 🇵🇹 [pt](../pt/SECURITY.md) · 🇧🇷 [pt-BR](../pt-BR/SECURITY.md) · 🇷🇴 [ro](../ro/SECURITY.md) · 🇷🇺 [ru](../ru/SECURITY.md) · 🇱🇰 [si](../si/SECURITY.md) · 🇸🇰 [sk](../sk/SECURITY.md) · 🇸🇮 [sl](../sl/SECURITY.md) · 🇷🇸 [sr](../sr/SECURITY.md) · 🇸🇪 [sv](../sv/SECURITY.md) · 🇰🇪 [sw](../sw/SECURITY.md) · 🇮🇳 [ta](../ta/SECURITY.md) · 🇮🇳 [te](../te/SECURITY.md) · 🇹🇭 [th](../th/SECURITY.md) · 🇹🇷 [tr](../tr/SECURITY.md) · 🇺🇦 [uk-UA](../uk-UA/SECURITY.md) · 🇵🇰 [ur](../ur/SECURITY.md) · 🇺🇿 [uz](../uz/SECURITY.md) · 🇻🇳 [vi](../vi/SECURITY.md) · 🇳🇬 [yo](../yo/SECURITY.md) · 🇨🇳 [zh-CN](../zh-CN/SECURITY.md) · 🇹🇼 [zh-TW](../zh-TW/SECURITY.md) --- ## ਕਮਜ਼ੋਰੀਆਂ ਦੀ ਰਿਪੋਰਟ ਕਰਨਾ ਜੇਕਰ ਤੁਹਾਨੂੰ OmniRoute ਵਿੱਚ ਕੋਈ ਸੁਰੱਖਿਆ ਕਮਜ਼ੋਰੀ ਮਿਲਦੀ ਹੈ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਜ਼ਿੰਮੇਵਾਰੀ ਨਾਲ ਇਸਦੀ ਰਿਪੋਰਟ ਕਰੋ: 1. ਜਨਤਕ GitHub issue **ਨਾ ਖੋਲ੍ਹੋ** 2. [GitHub Security Advisories](https://github.com/diegosouzapw/OmniRoute/security/advisories/new) ਦੀ ਵਰਤੋਂ ਕਰੋ 3. ਇਹ ਸ਼ਾਮਲ ਕਰੋ: ਵੇਰਵਾ, ਮੁੜ ਪੈਦਾ ਕਰਨ ਦੇ ਪੜਾਅ, ਅਤੇ ਸੰਭਾਵੀ ਪ੍ਰਭਾਵ ## ਜਵਾਬ ਦੀ ਸਮਾਂ-ਸੀਮਾ | ਪੜਾਅ | ਟੀਚਾ | | ----------------- | -------------------------- | | ਪ੍ਰਾਪਤੀ ਦੀ ਪੁਸ਼ਟੀ | 48 ਘੰਟੇ | | ਛਾਂਟੀ ਅਤੇ ਮੁਲਾਂਕਣ | 5 ਕਾਰੋਬਾਰੀ ਦਿਨ | | ਪੈਚ ਰਿਲੀਜ਼ | 14 ਕਾਰੋਬਾਰੀ ਦਿਨ (ਗੰਭੀਰ ਲਈ) | ## ਸਮਰਥਿਤ ਵਰਜਨ | ਵਰਜਨ | ਸਮਰਥਨ ਸਥਿਤੀ | | ------- | ------------------------------------------------ | | 3.9.x | 🗓️ ਯੋਜਨਾਬੱਧ — LTS ਲਾਈਨ (`stable/v3`), ਹੇਠਾਂ ਵੇਖੋ | | 3.8.x | ✅ ਸਰਗਰਮ | | 3.7.x | ✅ ਸੁਰੱਖਿਆ | | < 3.7.0 | ❌ ਅਸਮਰਥਿਤ | ## LTS ਸਮਰਥਨ ਮਿਆਦ (v3.9.x) 3.8.59 ਤੋਂ ਬਾਅਦ ਅਗਲਾ ਵਰਜਨ **3.9.0** ਹੈ, ਜੋ `stable/v3` ਬ੍ਰਾਂਚ ਉੱਤੇ ਲੰਬੇ ਸਮੇਂ ਦੇ ਸਮਰਥਨ ਦੀ ਲਾਈਨ ਖੋਲ੍ਹਦਾ ਹੈ (ਵੇਖੋ [`ROADMAP.md`](ROADMAP.md) → "ਪੜਾਅ 3 — v3.9.0 LTS")। - **`stable/v3` ਨੂੰ ਕੀ ਮਿਲਦਾ ਹੈ:** ਬੱਗ ਸੁਧਾਰ, ਸੁਰੱਖਿਆ ਪੈਚ ਅਤੇ ਪ੍ਰਦਾਤਾ ਅੱਪਡੇਟ। ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ v4 ਚੈਨਲ ਵਿੱਚ ਜਾਂਦੀਆਂ ਹਨ; LTS ਲਾਈਨ ਸਥਿਰਤਾ ਨੂੰ ਪਹਿਲ ਦਿੰਦੀ ਹੈ। ਪੂਰੇ v4 ਚੱਕਰ ਦੌਰਾਨ `npm install omniroute` (`latest` dist-tag) v3 ਉੱਤੇ ਹੀ ਰਹਿੰਦਾ ਹੈ। - **ਮਿਆਦ ਦੀ ਲੰਬਾਈ:** ``। v4.0 GA ਤੋਂ ਬਾਅਦ (`latest` ਦੇ v4 ਉੱਤੇ ਜਾਣ ਸਮੇਂ) ਮਿਆਦ ਦੀ ਲੰਬਾਈ ਬਾਰੇ **ਹਾਲੇ ਫ਼ੈਸਲਾ ਨਹੀਂ ਹੋਇਆ**; ਜਦੋਂ ਸੰਭਾਲਕ ਇਸਦਾ ਐਲਾਨ ਕਰੇਗਾ, ਤਾਂ ਇਸ ਭਾਗ ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾਵੇਗਾ। ਉਦੋਂ ਤੱਕ ਕਿਸੇ ਸਮਾਪਤੀ ਮਿਤੀ ਦਾ ਅਨੁਮਾਨ ਨਾ ਲਗਾਓ। - **LTS ਲਾਈਨ ਵਿੱਚ ਕਮਜ਼ੋਰੀ ਦੀ ਰਿਪੋਰਟ ਕਰਨਾ:** ਕਿਸੇ ਵੀ ਹੋਰ ਵਰਜਨ ਵਾਂਗ ਉਹੀ ਚੈਨਲ — ਇੱਕ ਨਿੱਜੀ [GitHub Security Advisory](https://github.com/diegosouzapw/OmniRoute/security/advisories/new), ਕਦੇ ਵੀ ਜਨਤਕ issue ਨਹੀਂ। ਦੱਸੋ ਕਿ ਤੁਸੀਂ ਕਿਹੜੇ ਵਰਜਨ ਦੀ ਜਾਂਚ ਕੀਤੀ ਸੀ (ਉਦਾਹਰਨ ਲਈ `3.9.2`); ਸੁਧਾਰ `stable/v3` ਵਿੱਚ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ ਅਤੇ v4 ਵਿੱਚ forward-port ਕੀਤੇ ਜਾਂਦੇ ਹਨ। - **LTS ਨਿਰਧਾਰਨ ਵੇਲੇ ਸੁਰੱਖਿਆ ਬੇਸਲਾਈਨ:** ਮਾਪੀ ਗਈ ਸਕੈਨਰ ਸਥਿਤੀ, route-guard ਅਤੇ ਜਨਤਕ credential ਦੇ ਸਬੂਤ [`docs/security/LTS_SECURITY_BASELINE.md`](docs/security/LTS_SECURITY_BASELINE.md) ਵਿੱਚ ਦਰਜ ਹਨ। --- ## ਸੁਰੱਖਿਆ ਆਰਕੀਟੈਕਚਰ OmniRoute ਇੱਕ ਬਹੁ-ਪਰਤੀ ਸੁਰੱਖਿਆ ਮਾਡਲ ਲਾਗੂ ਕਰਦਾ ਹੈ: ``` ਬੇਨਤੀ → CORS → Authz ਪਾਈਪਲਾਈਨ (ਵਰਗੀਕਰਨ → ਨੀਤੀਆਂ → ਲਾਗੂ ਕਰਨਾ) → ਸੁਰੱਖਿਆ ਰੋਕਾਂ (PII ਮਾਸਕਰ, ਪ੍ਰੌਂਪਟ ਇੰਜੈਕਸ਼ਨ, ਵਿਜ਼ਨ ਬ੍ਰਿਜ) → ਦਰ ਸੀਮਾਕਾਰ → ਸਰਕਿਟ ਬ੍ਰੇਕਰ → ਠੰਢਾ-ਅੰਤਰਾਲ → ਮਾਡਲ ਲਾਕਆਉਟ → ਪ੍ਰਦਾਤਾ ``` ### 🔐 ਪ੍ਰਮਾਣੀਕਰਨ ਅਤੇ ਅਧਿਕਾਰ-ਨਿਰਧਾਰਨ | ਵਿਸ਼ੇਸ਼ਤਾ | ਲਾਗੂਕਰਨ | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **ਡੈਸ਼ਬੋਰਡ ਲਾਗਇਨ** | JWT ਟੋਕਨਾਂ (HttpOnly ਕੂਕੀਜ਼) ਨਾਲ ਪਾਸਵਰਡ-ਆਧਾਰਿਤ ਪ੍ਰਮਾਣੀਕਰਨ | | **API Key ਪ੍ਰਮਾਣੀਕਰਨ** | CRC ਪ੍ਰਮਾਣਿਕਤਾ ਵਾਲੀਆਂ HMAC-ਦਸਤਖ਼ਤ ਕੀਤੀਆਂ ਕੁੰਜੀਆਂ | | **OAuth 2.0 + PKCE** | ਪ੍ਰਦਾਤਾ-ਵਿਸ਼ੇਸ਼ ਬ੍ਰਾਊਜ਼ਰ/ਡਿਵਾਈਸ OAuth ਜਿੱਥੇ ਸਮਰਥਿਤ ਹੋਵੇ ਉੱਥੇ PKCE ਵਰਤਦਾ ਹੈ; ਕੇਵਲ-ਆਯਾਤ Devin credentials ਨੂੰ ਵੱਖਰੇ ਤੌਰ ਉੱਤੇ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ। | | **ਟੋਕਨ ਰਿਫ੍ਰੈਸ਼** | ਮਿਆਦ ਪੁੱਗਣ ਤੋਂ ਪਹਿਲਾਂ OAuth ਟੋਕਨ ਦਾ ਸਵੈਚਾਲਿਤ ਰਿਫ੍ਰੈਸ਼ | | **ਸੁਰੱਖਿਅਤ ਕੂਕੀਜ਼** | HTTPS ਵਾਤਾਵਰਣਾਂ ਲਈ `AUTH_COOKIE_SECURE=true` | | **Authz ਪਾਈਪਲਾਈਨ** | ਰੂਟ ਵਰਗੀਕਰਨ (PUBLIC / CLIENT_API / MANAGEMENT) — `docs/architecture/AUTHZ_GUIDE.md` ਵੇਖੋ | | **ਰੂਟ ਗਾਰਡ ਪੱਧਰ** | ਪ੍ਰਬੰਧਨ ਰੂਟਾਂ ਲਈ 3-ਪੱਧਰੀ ਮਾਡਲ (LOCAL_ONLY / ALWAYS_PROTECTED / MANAGEMENT) — `docs/security/ROUTE_GUARD_TIERS.md` ਵੇਖੋ | | **Manage-Scope MCP** | ਰਿਮੋਟ `/api/mcp/*` ਪਹੁੰਚ `manage` ਸਕੋਪ ਵਾਲੀਆਂ API keys ਦੁਆਰਾ ਨਿਯੰਤਰਿਤ ਹੈ; `/api/cli-tools/runtime/*` ਸਖ਼ਤੀ ਨਾਲ loopback ਤੱਕ ਸੀਮਿਤ ਰਹਿੰਦਾ ਹੈ। ROUTE_GUARD_TIERS ਵੇਖੋ | | **MCP ਸਕੋਪ** | 32 ਵਿਸਤ੍ਰਿਤ ਸਕੋਪ (read:health, write:combos, execute:completions, ਆਦਿ) — `docs/frameworks/MCP-SERVER.md` ਵੇਖੋ | ### 🛡️ ਸਟੋਰੇਜ ਵਿੱਚ ਇਨਕ੍ਰਿਪਸ਼ਨ SQLite ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਸਾਰਾ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ scrypt ਕੁੰਜੀ ਉਤਪੱਤੀ ਨਾਲ **AES-256-GCM** ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਨਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ: - API keys, access tokens, refresh tokens, ਅਤੇ ID tokens - ਵਰਜਨ ਵਾਲਾ ਫਾਰਮੈਟ: `enc:v1:::` - ਜਦੋਂ `STORAGE_ENCRYPTION_KEY` ਸੈੱਟ ਨਾ ਹੋਵੇ ਤਾਂ passthrough ਮੋਡ (ਪਲੇਨਟੈਕਸਟ) ```bash # ਇਨਕ੍ਰਿਪਸ਼ਨ ਕੁੰਜੀ ਤਿਆਰ ਕਰੋ: STORAGE_ENCRYPTION_KEY=$(openssl rand -hex 32) ``` ### 🛡️ ਸੁਰੱਖਿਆ ਰੋਕਾਂ ਦਾ ਫਰੇਮਵਰਕ OmniRoute ਤਰਜੀਹ ਅਨੁਸਾਰ ਕ੍ਰਮਬੱਧ 3 ਅੰਦਰੂਨੀ ਸੁਰੱਖਿਆ ਰੋਕਾਂ ਵਾਲੀ, ਤੁਰੰਤ ਮੁੜ ਲੋਡ ਹੋ ਸਕਣ ਵਾਲੀ **ਸੁਰੱਖਿਆ ਰੋਕਾਂ ਦੀ ਰਜਿਸਟਰੀ** (`src/lib/guardrails/`) ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ: | ਸੁਰੱਖਿਆ ਰੋਕ | ਤਰਜੀਹ | ਉਦੇਸ਼ | | ------------------ | ----- | ----------------------------------------------------------------------------------------- | | `vision-bridge` | 5 | ਬਿਨਾਂ ਵਿਜ਼ਨ ਵਾਲੇ ਮਾਡਲਾਂ ਨੂੰ ਚਿੱਤਰ-ਜਾਗਰੂਕ ਵੇਰਵਿਆਂ ਨਾਲ ਜੋੜਦਾ ਹੈ; ਚਿੱਤਰ URLs ਲਈ SSRF ਸੁਰੱਖਿਆ | | `pii-masker` | 10 | ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ+ਬਾਅਦ PII ਲੁਕਾਉਣਾ (ਈਮੇਲ, ਫ਼ੋਨ, CPF, CNPJ, ਕ੍ਰੈਡਿਟ ਕਾਰਡ, SSN) | | `prompt-injection` | 20 | override/role-hijack/jailbreak/leak ਪੈਟਰਨਾਂ ਦੀ ਪਛਾਣ ਕਰਦਾ ਹੈ | ਕਸਟਮ ਸੁਰੱਖਿਆ ਰੋਕਾਂ `registerGuardrail(new MyGuardrail())` ਰਾਹੀਂ ਰਜਿਸਟਰ ਹੁੰਦੀਆਂ ਹਨ। ਮਾਡਲ fail-open ਹੈ (ਅਪਵਾਦ ਕਦੇ ਵੀ ਟ੍ਰੈਫ਼ਿਕ ਨੂੰ ਨਹੀਂ ਰੋਕਦੇ)। ਹਰ ਬੇਨਤੀ ਲਈ `x-omniroute-disabled-guardrails` ਹੈਡਰ ਰਾਹੀਂ ਬਾਹਰ ਰਹਿਣ ਦੀ ਚੋਣ। → [`docs/security/GUARDRAILS.md`](docs/security/GUARDRAILS.md) ਵੇਖੋ। ### 🧠 ਪ੍ਰੌਂਪਟ ਇੰਜੈਕਸ਼ਨ ਗਾਰਡ LLM ਬੇਨਤੀਆਂ ਵਿੱਚ ਪ੍ਰੌਂਪਟ ਇੰਜੈਕਸ਼ਨ ਪੈਟਰਨਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਵਾਲਾ ਬਿਹਤਰੀਨ-ਸੰਭਵ ਅਨੁਮਾਨ-ਆਧਾਰਿਤ ਮਿਡਲਵੇਅਰ। **ਇਹ ਪੂਰਨ ਪ੍ਰੌਂਪਟ-ਇੰਜੈਕਸ਼ਨ ਫਾਇਰਵਾਲ ਨਹੀਂ ਹੈ** — ਇਹ ਗਲਤ ਸਕਾਰਾਤਮਕ ਨਤੀਜੇ (ਨੁਕਸਾਨ-ਰਹਿਤ ਪਰਸੋਨਾ/RPG ਪ੍ਰੌਂਪਟ) ਅਤੇ ਗਲਤ ਨਕਾਰਾਤਮਕ ਨਤੀਜੇ (ਲੀਟਸਪੀਕ, ਖਾਲੀ ਥਾਵਾਂ, ਗੈਰ-ਅੰਗਰੇਜ਼ੀ ਪੈਟਰਨ) ਦੇ ਸਕਦਾ ਹੈ। | ਪੈਟਰਨ ਦੀ ਕਿਸਮ | ਗੰਭੀਰਤਾ | ਉਦਾਹਰਨ | | ----------------- | ------- | ------------------------------------------- | | ਸਿਸਟਮ ਓਵਰਰਾਈਡ | ਉੱਚ | "ਪਿਛਲੀਆਂ ਸਾਰੀਆਂ ਹਦਾਇਤਾਂ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰੋ" | | ਭੂਮਿਕਾ ਹਾਈਜੈਕ | ਦਰਮਿਆਨੀ | "ਹੁਣ ਤੁਸੀਂ DAN ਹੋ, ਤੁਸੀਂ ਕੁਝ ਵੀ ਕਰ ਸਕਦੇ ਹੋ" | | ਡਿਲਿਮਟਰ ਇੰਜੈਕਸ਼ਨ | ਉੱਚ | ਸੰਦਰਭ ਦੀਆਂ ਹੱਦਾਂ ਤੋੜਨ ਲਈ ਐਨਕੋਡ ਕੀਤੇ ਵਿਭਾਜਕ | | DAN/ਜੇਲਬ੍ਰੇਕ | ਦਰਮਿਆਨੀ | ਜਾਣੇ-ਪਛਾਣੇ ਜੇਲਬ੍ਰੇਕ ਪ੍ਰੌਂਪਟ ਪੈਟਰਨ | | ਹਦਾਇਤ ਲੀਕ | ਉੱਚ | "ਮੈਨੂੰ ਆਪਣਾ ਸਿਸਟਮ ਪ੍ਰੌਂਪਟ ਦਿਖਾਓ" | | ਐਨਕੋਡਿੰਗ ਤੋਂ ਬਚਾਅ | ਦਰਮਿਆਨੀ | base64/rot13/hex ਡੀਕੋਡ + ਹਦਾਇਤੀ ਕੀਵਰਡ | `block` ਮੋਡ ਵਿੱਚ ਸਿਰਫ਼ **ਉੱਚ** ਗੰਭੀਰਤਾ ਵਾਲੀਆਂ ਖੋਜਾਂ ਨੂੰ ਬਲੌਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਦਰਮਿਆਨੀ-ਗੰਭੀਰਤਾ ਵਾਲੇ ਪਰਿਵਾਰ ਲੌਗ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਪਰ `sanitizeRequest` ਵੱਲੋਂ ਕਦੇ ਵੀ ਬਲੌਕ ਨਹੀਂ ਕੀਤੇ ਜਾਂਦੇ। ਡੈਸ਼ਬੋਰਡ (Settings → Security) ਜਾਂ `.env` ਰਾਹੀਂ ਸੰਰਚਿਤ ਕਰੋ: ```env INPUT_SANITIZER_ENABLED=true INPUT_SANITIZER_MODE=block # ਚੇਤਾਵਨੀ | ਬਲੌਕ (ਇੰਜੈਕਸ਼ਨ ਨੀਤੀ; ਪੁਰਾਣਾ "redact" ਇੰਜੈਕਸ਼ਨ ਟੈਕਸਟ ਨੂੰ ਨਹੀਂ ਹਟਾਉਂਦਾ) INPUT_SANITIZER_BLOCK_THRESHOLD=high # high (ਮੂਲ) | medium | low — ਬਲੌਕ ਮੋਡ ਵਿੱਚ ਇਸ ਪੱਧਰ ਜਾਂ ਇਸ ਤੋਂ ਵੱਧ ਗੰਭੀਰਤਾਵਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ ``` ### 🔒 PII ਸੰਪਾਦਨ ਨਿੱਜੀ ਤੌਰ 'ਤੇ ਪਛਾਣਯੋਗ ਜਾਣਕਾਰੀ ਦੀ ਸਵੈਚਾਲਿਤ ਪਛਾਣ ਅਤੇ ਵਿਕਲਪਿਕ ਸੰਪਾਦਨ: | PII ਦੀ ਕਿਸਮ | ਪੈਟਰਨ | ਬਦਲਾਵ | | --------------- | --------------------- | ------------------ | | ਈਮੇਲ | `user@domain.com` | `[EMAIL_REDACTED]` | | CPF (ਬ੍ਰਾਜ਼ੀਲ) | `123.456.789-00` | `[CPF_REDACTED]` | | CNPJ (ਬ੍ਰਾਜ਼ੀਲ) | `12.345.678/0001-00` | `[CNPJ_REDACTED]` | | ਕ੍ਰੈਡਿਟ ਕਾਰਡ | `4111-1111-1111-1111` | `[CC_REDACTED]` | | ਫ਼ੋਨ | `+55 11 99999-9999` | `[PHONE_REDACTED]` | | SSN (ਅਮਰੀਕਾ) | `123-45-6789` | `[SSN_REDACTED]` | ```env PII_REDACTION_ENABLED=true # ਬੇਨਤੀ ਵਿੱਚ PII ਮੁੜ-ਲਿਖਾਈ; INPUT_SANITIZER_MODE ਤੋਂ ਸੁਤੰਤਰ PII_RESPONSE_SANITIZATION=true # ਵਿਕਲਪਿਕ: ਕਲਾਇੰਟਾਂ ਨੂੰ ਵਾਪਸ ਕੀਤੇ ਪ੍ਰਦਾਤਾ ਜਵਾਬਾਂ ਵਿੱਚ PII ਸੰਪਾਦਿਤ ਕਰੋ ``` ### 🌐 ਨੈੱਟਵਰਕ ਸੁਰੱਖਿਆ | ਵਿਸ਼ੇਸ਼ਤਾ | ਵੇਰਵਾ | | -------------------- | --------------------------------------------------------------------------- | | **CORS** | ਸਪਸ਼ਟ ਕਰੌਸ-ਓਰਿਜਨ ਮਨਜ਼ੂਰ-ਸੂਚੀ (`CORS_ALLOWED_ORIGINS`; ਪੁਰਾਣਾ `CORS_ORIGIN`) | | **IP ਫਿਲਟਰਿੰਗ** | ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਮਨਜ਼ੂਰ-ਸੂਚੀ/ਬਲੌਕ-ਸੂਚੀ IP ਰੇਂਜ | | **ਰੇਟ ਸੀਮਾਬੰਦੀ** | ਸਵੈਚਾਲਿਤ ਬੈਕਆਫ਼ ਨਾਲ ਪ੍ਰਤੀ-ਪ੍ਰਦਾਤਾ ਰੇਟ ਸੀਮਾਵਾਂ | | **ਐਂਟੀ-ਥੰਡਰਿੰਗ ਹਰਡ** | ਮਿਊਟੈਕਸ + ਪ੍ਰਤੀ-ਕਨੈਕਸ਼ਨ ਲੌਕਿੰਗ ਲੜੀਵਾਰ 502 ਗਲਤੀਆਂ ਨੂੰ ਰੋਕਦੀ ਹੈ | | **TLS ਫਿੰਗਰਪ੍ਰਿੰਟ** | ਬੌਟ ਪਛਾਣ ਘਟਾਉਣ ਲਈ ਬ੍ਰਾਊਜ਼ਰ ਵਰਗੀ TLS ਫਿੰਗਰਪ੍ਰਿੰਟ ਸਪੂਫਿੰਗ | | **CLI ਫਿੰਗਰਪ੍ਰਿੰਟ** | ਮੂਲ CLI ਦਸਤਖਤਾਂ ਨਾਲ ਮੇਲ ਕਰਨ ਲਈ ਪ੍ਰਤੀ-ਪ੍ਰਦਾਤਾ ਹੈਡਰ/ਬਾਡੀ ਕ੍ਰਮ | ### 🔌 ਲਚਕਤਾ ਅਤੇ ਉਪਲਬਧਤਾ | ਵਿਸ਼ੇਸ਼ਤਾ | ਵੇਰਵਾ | | ------------------------ | ---------------------------------------------------------------------- | | **ਸਰਕਿਟ ਬ੍ਰੇਕਰ** | ਪ੍ਰਤੀ ਪ੍ਰਦਾਤਾ 3-ਸਥਿਤੀ (ਬੰਦ → ਖੁੱਲ੍ਹਾ → ਅੱਧਾ-ਖੁੱਲ੍ਹਾ), SQLite ਵਿੱਚ ਸਥਾਈ | | **ਬੇਨਤੀ ਆਈਡੈਂਪੋਟੈਂਸੀ** | ਡੁਪਲੀਕੇਟ ਬੇਨਤੀਆਂ ਲਈ 5-ਸਕਿੰਟ ਦੀ ਡੀਡੁਪ ਵਿੰਡੋ | | **ਐਕਸਪੋਨੇਨਸ਼ੀਅਲ ਬੈਕਆਫ਼** | ਵਧਦੀਆਂ ਦੇਰੀਆਂ ਨਾਲ ਸਵੈਚਾਲਿਤ ਮੁੜ-ਕੋਸ਼ਿਸ਼ | | **ਸਿਹਤ ਡੈਸ਼ਬੋਰਡ** | ਰੀਅਲ-ਟਾਈਮ ਪ੍ਰਦਾਤਾ ਸਿਹਤ ਨਿਗਰਾਨੀ | ### 📋 ਪਾਲਣਾ | ਵਿਸ਼ੇਸ਼ਤਾ | ਵੇਰਵਾ | | ------------------ | --------------------------------------------------------------------------------- | | **ਲੌਗ ਸੰਭਾਲ ਮਿਆਦ** | `CALL_LOG_RETENTION_DAYS` ਤੋਂ ਬਾਅਦ ਸਵੈਚਾਲਿਤ ਸਫ਼ਾਈ | | **ਨੋ-ਲੌਗ ਔਪਟ-ਆਉਟ** | ਪ੍ਰਤੀ API ਕੁੰਜੀ `noLog` ਫਲੈਗ ਬੇਨਤੀ ਲੌਗਿੰਗ ਨੂੰ ਅਸਮਰੱਥ ਕਰਦਾ ਹੈ | | **ਆਡਿਟ ਲੌਗ** | ਪ੍ਰਸ਼ਾਸਕੀ ਕਾਰਵਾਈਆਂ ਨੂੰ `audit_log` ਟੇਬਲ ਵਿੱਚ ਟ੍ਰੈਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ | | **MCP ਆਡਿਟ** | ਸਾਰੀਆਂ MCP ਟੂਲ ਕਾਲਾਂ ਲਈ SQLite-ਆਧਾਰਿਤ ਆਡਿਟ ਲੌਗਿੰਗ | | **Zod ਪ੍ਰਮਾਣਿਕਤਾ** | ਸਾਰੇ API ਇਨਪੁੱਟਾਂ ਦੀ ਮੋਡੀਊਲ ਲੋਡ ਸਮੇਂ Zod v4 ਸਕੀਮਾਵਾਂ ਨਾਲ ਪ੍ਰਮਾਣਿਕਤਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ | --- ## ਲੋੜੀਂਦੇ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਸਰਵਰ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਸਾਰੇ ਗੁਪਤ ਮੁੱਲ ਸੈੱਟ ਕੀਤੇ ਜਾਣੇ ਲਾਜ਼ਮੀ ਹਨ। ਜੇ ਉਹ ਮੌਜੂਦ ਨਾ ਹੋਣ ਜਾਂ ਕਮਜ਼ੋਰ ਹੋਣ, ਤਾਂ ਸਰਵਰ **ਤੁਰੰਤ ਅਸਫਲ** ਹੋ ਜਾਵੇਗਾ। ```bash # ਲੋੜੀਂਦੇ — ਇਨ੍ਹਾਂ ਤੋਂ ਬਿਨਾਂ ਸਰਵਰ ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਵੇਗਾ: JWT_SECRET=$(openssl rand -base64 48) # ਘੱਟੋ-ਘੱਟ 32 ਅੱਖਰ API_KEY_SECRET=$(openssl rand -hex 32) # ਘੱਟੋ-ਘੱਟ 16 ਅੱਖਰ # ਸਿਫ਼ਾਰਸ਼ੀ — ਸਟੋਰੇਜ ਵਿੱਚ ਮੌਜੂਦ ਡਾਟੇ ਦੀ ਇਨਕ੍ਰਿਪਸ਼ਨ ਸਮਰੱਥ ਕਰਦਾ ਹੈ: STORAGE_ENCRYPTION_KEY=$(openssl rand -hex 32) ``` ਸਰਵਰ `changeme`, `secret`, ਜਾਂ `password` ਵਰਗੇ ਜਾਣੇ-ਪਛਾਣੇ ਕਮਜ਼ੋਰ ਮੁੱਲਾਂ ਨੂੰ ਸਰਗਰਮੀ ਨਾਲ ਰੱਦ ਕਰਦਾ ਹੈ। --- ## Docker ਸੁਰੱਖਿਆ - ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਗੈਰ-root ਯੂਜ਼ਰ ਵਰਤੋ - ਗੁਪਤ ਮੁੱਲਾਂ ਨੂੰ ਕੇਵਲ-ਪੜ੍ਹਨਯੋਗ ਵਾਲਿਊਮਾਂ ਵਜੋਂ ਮਾਊਂਟ ਕਰੋ - `.env` ਫ਼ਾਈਲਾਂ ਨੂੰ ਕਦੇ ਵੀ Docker ਇਮੇਜਾਂ ਵਿੱਚ ਕਾਪੀ ਨਾ ਕਰੋ - ਸੰਵੇਦਨਸ਼ੀਲ ਫ਼ਾਈਲਾਂ ਨੂੰ ਬਾਹਰ ਰੱਖਣ ਲਈ `.dockerignore` ਵਰਤੋ - HTTPS ਦੇ ਪਿੱਛੇ ਹੋਣ ਵੇਲੇ `AUTH_COOKIE_SECURE=true` ਸੈੱਟ ਕਰੋ ```bash docker run -d \ --name omniroute \ --restart unless-stopped \ --read-only \ -p 20128:20128 \ -v omniroute-data:/app/data \ -e JWT_SECRET="$(openssl rand -base64 48)" \ -e API_KEY_SECRET="$(openssl rand -hex 32)" \ -e STORAGE_ENCRYPTION_KEY="$(openssl rand -hex 32)" \ diegosouzapw/omniroute:latest ``` --- ## ਨਿਰਭਰਤਾਵਾਂ - `npm audit` ਨੂੰ ਨਿਯਮਿਤ ਤੌਰ 'ਤੇ ਚਲਾਓ (`npm run audit:deps` ਮੁੱਖ + electron ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ) - ਨਿਰਭਰਤਾਵਾਂ ਨੂੰ ਅੱਪਡੇਟ ਰੱਖੋ - ਪ੍ਰੋਜੈਕਟ pre-commit ਜਾਂਚਾਂ ਲਈ `husky` + `lint-staged` ਵਰਤਦਾ ਹੈ (lint-staged + check-docs-sync + check:any-budget:t11) - CI ਪਾਈਪਲਾਈਨ ਹਰ push ਉੱਤੇ ESLint ਸੁਰੱਖਿਆ ਨਿਯਮ ਚਲਾਉਂਦੀ ਹੈ (`no-eval`, `no-implied-eval`, `no-new-func` = ਗਲਤੀ) - Zod ਰਾਹੀਂ ਮੋਡੀਊਲ ਲੋਡ ਹੋਣ ਵੇਲੇ ਪ੍ਰੋਵਾਈਡਰ ਕਾਂਸਟੈਂਟਾਂ ਦੀ ਪ੍ਰਮਾਣਿਕਤਾ ਜਾਂਚੀ ਜਾਂਦੀ ਹੈ (`src/shared/validation/schemas.ts`) - ਮੂਲ ਰੂਪ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਲਾਇਬ੍ਰੇਰੀਆਂ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ: `dompurify` / `isomorphic-dompurify` (XSS), `jose` (JWT), `better-sqlite3` (ਪੈਰਾਮੀਟਰਾਈਜ਼ਡ ਕਵੇਰੀਆਂ ਕਾਰਨ SQLi ਦਾ ਕੋਈ ਜੋਖਮ ਨਹੀਂ), `bcryptjs` (ਪਾਸਵਰਡ ਹੈਸ਼ਿੰਗ) ## ਸਖ਼ਤ ਸੁਰੱਖਿਆ ਨਿਯਮ ਇਹ ਨਿਯਮ ਟੂਲਿੰਗ ਅਤੇ ਸਮੀਖਿਅਕਾਂ ਦੁਆਰਾ ਲਾਗੂ ਕੀਤੇ ਜਾਂਦੇ ਹਨ: 1. **ਗੁਪਤ ਮੁੱਲ ਕਦੇ ਵੀ commit ਨਾ ਕਰੋ** — `.env` ਨੂੰ gitignore ਕੀਤਾ ਗਿਆ ਹੈ; `.env.example` ਟੈਂਪਲੇਟ ਹੈ (ਕੋਈ ਲਿਟਰਲ ਨਹੀਂ, ਸਿਰਫ਼ ਟਿੱਪਣੀਆਂ — ਹੇਠਾਂ PUBLIC_CREDS.md ਵੇਖੋ) 2. **ਕਦੇ ਵੀ `eval()`, `new Function()`, ਜਾਂ implied eval ਨਾ ਵਰਤੋ** — ESLint ਇਸਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ 3. **ਸਪਸ਼ਟ ਆਪਰੇਟਰ ਮਨਜ਼ੂਰੀ ਤੋਂ ਬਿਨਾਂ Husky hooks ਨੂੰ ਕਦੇ ਵੀ ਬਾਈਪਾਸ ਨਾ ਕਰੋ** (`--no-verify`, `--no-gpg-sign`) 4. **ਰੂਟਾਂ ਵਿੱਚ ਕਦੇ ਵੀ ਕੱਚੀ SQL ਨਾ ਲਿਖੋ** — ਹਮੇਸ਼ਾ `src/lib/db/` ਰਾਹੀਂ ਜਾਓ (ਪੈਰਾਮੀਟਰਾਈਜ਼ਡ) 5. **ਇਨਪੁੱਟਾਂ ਦੀ ਹਮੇਸ਼ਾ Zod ਨਾਲ ਪ੍ਰਮਾਣਿਕਤਾ ਜਾਂਚੋ** — `src/shared/validation/schemas.ts` 6. **ਅੱਪਸਟ੍ਰੀਮ ਹੈਡਰਾਂ ਨੂੰ ਹਮੇਸ਼ਾ ਸੈਨਿਟਾਈਜ਼ ਕਰੋ** — `src/shared/constants/upstreamHeaders.ts` ਵਿੱਚ denylist 7. **ਸਟੋਰੇਜ ਵਿੱਚ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲਾਂ ਨੂੰ ਇਨਕ੍ਰਿਪਟ ਕਰੋ** — `src/lib/db/encryption.ts` ਰਾਹੀਂ AES-256-GCM 8. **ਜਨਤਕ ਅੱਪਸਟ੍ਰੀਮ OAuth ਪਛਾਣਕਰਤਾ `resolvePublicCred()` ਰਾਹੀਂ** — ਸੋਰਸ ਵਿੱਚ ਕਦੇ ਵੀ `AIza…` / `GOCSPX-…` / `…apps.googleusercontent.com` ਲਿਟਰਲ ਸ਼ਾਮਲ ਨਾ ਕਰੋ। [`docs/security/PUBLIC_CREDS.md`](docs/security/PUBLIC_CREDS.md) ਵੇਖੋ। 9. **ਗਲਤੀ ਜਵਾਬ `buildErrorBody()` / `sanitizeErrorMessage()` ਰਾਹੀਂ** — HTTP / SSE / executor / MCP ਜਵਾਬ ਬਾਡੀਆਂ ਵਿੱਚ ਕਦੇ ਵੀ ਕੱਚਾ `err.stack` / `err.message` ਨਾ ਪਾਓ। [`docs/security/ERROR_SANITIZATION.md`](docs/security/ERROR_SANITIZATION.md) ਵੇਖੋ। 10. **`exec()` / `spawn()` ਦੇ ਰਨਟਾਈਮ ਮੁੱਲ `env` ਵਿਕਲਪ ਰਾਹੀਂ** — ਬਾਹਰੀ ਪਾਥਾਂ ਜਾਂ ਅਵਿਸ਼ਵਾਸਯੋਗ ਮੁੱਲਾਂ ਨੂੰ shell ਰਾਹੀਂ ਚਲਾਈਆਂ ਜਾਣ ਵਾਲੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਵਿੱਚ ਕਦੇ ਵੀ ਸਟ੍ਰਿੰਗ-ਇੰਟਰਪੋਲੇਟ ਨਾ ਕਰੋ। ਹਵਾਲਾ: `src/mitm/cert/install.ts::updateNssDatabases`। 11. **ਮੂਲ ਰੂਪ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਤਰਜੀਹ ਦਿਓ** — [tldrsec/awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults) ਵੇਖੋ (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink)। ਆਪਣਾ ਹੱਲ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਇਨ੍ਹਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ। ## ਸਪਲਾਈ-ਚੇਨ ਸਕੈਨਰ ਦੇ ਨਤੀਜੇ (Socket.dev / Snyk / ਸਮਾਨ) > **ਦਾਇਰਾ ਨੋਟ:** ਰਿਪੋਜ਼ਟਰੀ ਰੂਟ ਵਿੱਚ `socket.yml` ਸਿਰਫ਼ ਪ੍ਰਕਾਸ਼ਿਤ npm ਆਰਟੀਫੈਕਟ ਦੇ Socket.dev ਦੇ ਰਜਿਸਟਰੀ-ਪਾਸੇ ਪੋਸਟ-ਪਬਲਿਸ਼ ਸਕੈਨ ਲਈ `projectIgnorePaths` ਨੂੰ ਆਕਾਰ ਦਿੰਦੀ ਹੈ — ਇਹ ਲਾਗੂ ਕੀਤਾ ਗਿਆ CI/PR ਮਰਜ ਗੇਟ ਨਹੀਂ ਹੈ। `.github/workflows` ਵਿੱਚ ਕੋਈ ਵਰਕਫ਼ਲੋ, ਕੋਈ `package.json` ਸਕ੍ਰਿਪਟ ਅਤੇ ਕੋਈ `Makefile` ਟਾਰਗੇਟ Socket.dev ਨੂੰ ਸੱਦਾ ਨਹੀਂ ਦਿੰਦਾ। ਪ੍ਰਕਾਸ਼ਿਤ `omniroute` npm ਆਰਟੀਫੈਕਟ Next.js `output: "standalone"` ਬਿਲਡ ਨੂੰ ਬੰਡਲ ਕਰਦਾ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਹਰ ਰੂਟ ਹੈਂਡਲਰ — ਦਸਤਾਵੇਜ਼ਬੱਧ ਵਿਸ਼ੇਸ਼-ਅਧਿਕਾਰ ਪ੍ਰਾਪਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ (MITM, Zed ਇੰਪੋਰਟ, Cloud Sync, ਐਮਬੈਡਿਡ ਸਰਵਿਸ ਸੁਪਰਵਾਈਜ਼ਰ) ਸਮੇਤ — ਅੰਤ ਵਿੱਚ `.next/server/*.js` ਮਿਨੀਫਾਈਡ ਚੰਕਾਂ ਵਿੱਚ ਪਹੁੰਚ ਜਾਂਦਾ ਹੈ। ਹਿਊਰਿਸਟਿਕ ਸਪਲਾਈ-ਚੇਨ ਸਕੈਨਰ ਅਕਸਰ ਉਹਨਾਂ ਚੰਕਾਂ ਦਾ ਮਾਲਵੇਅਰ ਸਿਗਨੇਚਰਾਂ ਨਾਲ ਪੈਟਰਨ-ਮੈਚ ਕਰਦੇ ਹਨ। ਸਾਡੇ ਵੱਲੋਂ ਵਰਤੀ ਜਾਂਦੀ ਸਕੈਨਰ ਸੰਰਚਨਾ ਰਿਪੋ ਰੂਟ ਵਿੱਚ [`socket.yml`](socket.yml) ਵਿਖੇ ਮੌਜੂਦ ਹੈ (Socket.dev GitHub App ਫਾਰਮੈਟ v2 — ਵੇਖੋ )। ਇਹ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਨਾ-ਭੇਜੀਆਂ ਜਾਣ ਵਾਲੀਆਂ ਡਾਇਰੈਕਟਰੀਆਂ (`tests/`, `_tasks/`, `_references/`, `_ideia/`, `_mono_repo/`, `docs/`, ਆਦਿ) ਨੂੰ ਬਾਹਰ ਰੱਖਦੀ ਹੈ, ਤਾਂ ਜੋ ਸਕੈਨਰ ਸਿਰਫ਼ ਉਹਨਾਂ ਕੋਡ ਪਾਥਾਂ ਬਾਰੇ ਰਿਪੋਰਟ ਕਰੇ ਜੋ ਅਸਲ ਵਿੱਚ ਪ੍ਰਕਾਸ਼ਿਤ ਵਰਤੋਂਕਾਰਾਂ ਤੱਕ ਪਹੁੰਚਦੇ ਹਨ — ਸਕੈਨ ਖੁਦ Socket GitHub App ਵੱਲੋਂ ਇਸ ਫ਼ਾਈਲ ਨੂੰ ਪੜ੍ਹ ਕੇ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ, ਨਾ ਕਿ ਇਸ ਰਿਪੋਜ਼ਟਰੀ ਦੇ ਕਿਸੇ ਵਰਕਫ਼ਲੋ ਦੁਆਰਾ। ਹਰੇਕ ਨਤੀਜਾ ਸ਼੍ਰੇਣੀ ਲਈ ਅਸੀਂ ਪ੍ਰਤੀ-ਨਤੀਜਾ ਮੇਨਟੇਨਰ ਤਸਦੀਕ ਬਣਾਈ ਰੱਖਦੇ ਹਾਂ: - **[`docs/security/SOCKET_DEV_FINDINGS.md`](docs/security/SOCKET_DEV_FINDINGS.md)** — ਪ੍ਰਤੀ-ਨਤੀਜਾ ਨਕਸ਼ਾ: ਸਰੋਤ ਫ਼ਾਈਲ ↔ ਫ਼ਲੈਗ ਕੀਤਾ ਚੰਕ ↔ ਵਿਹਾਰ ↔ v3.8.6 ਵਿੱਚ ਲਾਗੂ ਕੀਤਾ ਨਿਵਾਰਨ। - ਹਰੇਕ ਫ਼ਲੈਗ ਕੀਤੇ ਫੰਕਸ਼ਨ 'ਤੇ ਸਰੋਤ ਦੇ ਅੰਦਰਲੇ `SECURITY-AUDITOR-NOTE:` ਬਲਾਕ ਉਸੇ ਦਸਤਾਵੇਜ਼ ਵੱਲ ਵਾਪਸ ਸੰਕੇਤ ਕਰਦੇ ਹਨ। ਉਹਨਾਂ ਵਰਤੋਂਕਾਰਾਂ ਲਈ ਜਿਨ੍ਹਾਂ ਦੀ ਪਾਈਪਲਾਈਨ ਅਲਰਟ ਨੂੰ ਢਿੱਲਾ ਨਹੀਂ ਕਰ ਸਕਦੀ: `OMNIROUTE_BUILD_PROFILE=minimal npm run build` ਨਾਲ ਬਿਲਡ ਕਰੋ। ਇਹ ਚਾਰ ਸੰਵੇਦਨਸ਼ੀਲ ਮੋਡੀਊਲਾਂ ਨੂੰ ਅਜਿਹੇ ਸਟੱਬਾਂ ਨਾਲ ਬਦਲ ਦਿੰਦਾ ਹੈ ਜੋ ਰਨਟਾਈਮ ਦੌਰਾਨ HTTP 503 `feature-disabled` ਵਾਪਸ ਕਰਦੇ ਹਨ, ਇਸ ਲਈ ਵਿਸ਼ੇਸ਼-ਅਧਿਕਾਰ ਪ੍ਰਾਪਤ ਕੋਡ ਪਾਥ ਬੰਡਲ ਵਿੱਚ ਭੌਤਿਕ ਤੌਰ 'ਤੇ ਮੌਜੂਦ ਨਹੀਂ ਹੁੰਦੇ। ਪ੍ਰਕਾਸ਼ਨ ਵਿਧੀ ਲਈ [`docs/security/SOCKET_DEV_FINDINGS.md`](docs/security/SOCKET_DEV_FINDINGS.md) ਵੇਖੋ। ## ਹਵਾਲੇ - [`docs/architecture/AUTHZ_GUIDE.md`](docs/architecture/AUTHZ_GUIDE.md) — ਅਧਿਕਾਰਕਰਨ ਪਾਈਪਲਾਈਨ - [`docs/security/GUARDRAILS.md`](docs/security/GUARDRAILS.md) — ਗਾਰਡਰੇਲ ਫ੍ਰੇਮਵਰਕ - [`docs/security/COMPLIANCE.md`](docs/security/COMPLIANCE.md) — ਆਡਿਟ ਲੌਗ ਅਤੇ ਰਿਟੇਨਸ਼ਨ - [`docs/security/PUBLIC_CREDS.md`](docs/security/PUBLIC_CREDS.md) — ਜਨਤਕ ਅੱਪਸਟ੍ਰੀਮ ਕ੍ਰੈਡੈਂਸ਼ਲਾਂ ਲਈ **ਲਾਜ਼ਮੀ** ਪੈਟਰਨ - [`docs/security/ERROR_SANITIZATION.md`](docs/security/ERROR_SANITIZATION.md) — ਗਲਤੀ ਜਵਾਬਾਂ ਲਈ **ਲਾਜ਼ਮੀ** ਪੈਟਰਨ - [`docs/security/SOCKET_DEV_FINDINGS.md`](docs/security/SOCKET_DEV_FINDINGS.md) — ਸਪਲਾਈ-ਚੇਨ ਸਕੈਨਰ ਨਤੀਜਿਆਂ ਲਈ ਮੇਨਟੇਨਰ ਤਸਦੀਕ - [`docs/architecture/RESILIENCE_GUIDE.md`](docs/architecture/RESILIENCE_GUIDE.md) — ਸਰਕਿਟ ਬ੍ਰੇਕਰ + ਕੂਲਡਾਊਨ + ਲੌਕਆਉਟ - [`docs/security/STEALTH_GUIDE.md`](docs/security/STEALTH_GUIDE.md) — TLS ਫਿੰਗਰਪ੍ਰਿੰਟਿੰਗ (ਕਾਨੂੰਨੀ/ਨੈਤਿਕ ਨੋਟਿਸ) - [`CLAUDE.md`](CLAUDE.md) — AI ਏਜੰਟਾਂ ਲਈ ਸਖ਼ਤ ਨਿਯਮ - [tldrsec/awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults) — ਚੁਣੀਆਂ ਹੋਈਆਂ ਮੂਲ ਰੂਪ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਲਾਇਬ੍ਰੇਰੀਆਂ