# 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) · 🇮🇳 [pa](../pa/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) · 🇹🇭 [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 సమస్యను **తెరవవద్దు** 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 శ్రేణి స్థిరత్వానికి మొదటి ప్రాధాన్యం ఇస్తుంది. `npm install omniroute` (`latest` dist-tag) మొత్తం v4 చక్రంలో v3పైనే కొనసాగుతుంది. - **వ్యవధి:** ``. v4.0 GA తర్వాత (`latest` v4కు మారినప్పుడు) ఈ వ్యవధి ఎంతకాలం ఉంటుందనేది **ఇంకా నిర్ణయించబడలేదు**; నిర్వహకుడు ప్రకటించినప్పుడు ఈ విభాగం నవీకరించబడుతుంది. అప్పటివరకు ముగింపు తేదీని ఊహించవద్దు. - **LTS శ్రేణిలో దుర్బలత్వాన్ని నివేదించడం:** ఇతర సంస్కరణల మాదిరిగానే అదే ఛానెల్ — ప్రైవేట్ [GitHub Security Advisory](https://github.com/diegosouzapw/OmniRoute/security/advisories/new), పబ్లిక్ సమస్యను ఎప్పుడూ తెరవవద్దు. మీరు పరీక్షించిన సంస్కరణను పేర్కొనండి (ఉదాహరణకు `3.9.2`); పరిష్కారాలు `stable/v3`లో చేర్చబడి, v4కు ఫార్వర్డ్-పోర్ట్ చేయబడతాయి. - **LTS విభజన సమయంలో భద్రతా ప్రామాణిక స్థాయి:** కొలిచిన స్కానర్ స్థితి, రూట్-గార్డ్ మరియు పబ్లిక్-క్రెడెన్షియల్ రుజువులు [`docs/security/LTS_SECURITY_BASELINE.md`](docs/security/LTS_SECURITY_BASELINE.md)లో నమోదు చేయబడతాయి. --- ## భద్రతా నిర్మాణం OmniRoute బహుళ-పొరల భద్రతా నమూనాను అమలు చేస్తుంది: ``` అభ్యర్థన → CORS → Authz పైప్లైన్ (వర్గీకరణ → విధానాలు → అమలు) → రక్షణ నియమాలు (PII మాస్కర్, ప్రాంప్ట్ ఇంజెక్షన్, విజన్ బ్రిడ్జ్) → రేట్ లిమిటర్ → సర్క్యూట్ బ్రేకర్ → కూల్డౌన్ → మోడల్ లాకౌట్ → ప్రొవైడర్ ``` ### 🔐 ప్రమాణీకరణ & అధికార నిర్ధారణ | ఫీచర్ | అమలు | | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **డ్యాష్బోర్డ్ లాగిన్** | JWT టోకెన్లతో (HttpOnly కుకీలు) పాస్వర్డ్-ఆధారిత ప్రమాణీకరణ | | **API కీ ప్రమాణీకరణ** | CRC ధ్రువీకరణతో HMAC-సంతకం చేసిన కీలు | | **OAuth 2.0 + PKCE** | ప్రొవైడర్-నిర్దిష్ట బ్రౌజర్/పరికర OAuth, మద్దతు ఉన్న చోట PKCEను ఉపయోగిస్తుంది; దిగుమతి-మాత్రమే Devin క్రెడెన్షియల్లు విడిగా నిర్వహించబడతాయి. | | **టోకెన్ రిఫ్రెష్** | గడువు ముగిసే ముందు ఆటోమేటిక్ 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` చూడండి | | **మేనేజ్-స్కోప్ MCP** | రిమోట్ `/api/mcp/*` యాక్సెస్ `manage` స్కోప్ గల API కీల ద్వారా నియంత్రించబడుతుంది; `/api/cli-tools/runtime/*` కఠినమైన లూప్బ్యాక్కే పరిమితమై ఉంటుంది. ROUTE_GUARD_TIERS చూడండి | | **MCP స్కోప్లు** | 32 సూక్ష్మస్థాయి స్కోప్లు (read:health, write:combos, execute:completions మొదలైనవి) — `docs/frameworks/MCP-SERVER.md` చూడండి | ### 🛡️ నిల్వలో ఉన్న డేటా ఎన్క్రిప్షన్ SQLiteలో నిల్వ చేయబడిన అన్ని సున్నితమైన డేటా, scrypt కీ ఉత్పన్నంతో **AES-256-GCM**ను ఉపయోగించి ఎన్క్రిప్ట్ చేయబడుతుంది: - API కీలు, యాక్సెస్ టోకెన్లు, రిఫ్రెష్ టోకెన్లు మరియు ID టోకెన్లు - సంస్కరణ కలిగిన ఫార్మాట్: `enc:v1:::` - `STORAGE_ENCRYPTION_KEY` సెట్ చేయనప్పుడు పాస్త్రూ మోడ్ (సాదా టెక్స్ట్) ```bash # ఎన్క్రిప్షన్ కీని రూపొందించండి: STORAGE_ENCRYPTION_KEY=$(openssl rand -hex 32) ``` ### 🛡️ రక్షణ నియమాల ఫ్రేమ్వర్క్ OmniRoute, ప్రాధాన్యత ప్రకారం అమర్చబడిన 3 అంతర్నిర్మిత రక్షణ నియమాలతో హాట్-రీలోడ్ చేయగల **రక్షణ నియమాల రిజిస్ట్రీ**ని (`src/lib/guardrails/`) అందిస్తుంది: | రక్షణ నియమం | ప్రాధాన్యత | ఉద్దేశ్యం | | ------------------ | ---------- | --------------------------------------------------------------------------------------- | | `vision-bridge` | 5 | విజన్ లేని మోడల్లను చిత్రం-ఆధారిత వివరణలతో అనుసంధానిస్తుంది; చిత్ర URLల కోసం SSRF రక్షణ | | `pii-masker` | 10 | కాల్కు ముందు+తర్వాత PII తొలగింపు (ఇమెయిళ్లు, ఫోన్, CPF, CNPJ, క్రెడిట్ కార్డ్లు, SSN) | | `prompt-injection` | 20 | ఓవర్రైడ్/పాత్ర-హైజాక్/జైల్బ్రేక్/లీక్ నమూనాలను గుర్తిస్తుంది | అనుకూల రక్షణ నియమాలు `registerGuardrail(new MyGuardrail())` ద్వారా నమోదు అవుతాయి. ఈ నమూనా ఫెయిల్-ఓపెన్ విధానంలో ఉంటుంది (మినహాయింపులు ట్రాఫిక్ను ఎప్పుడూ నిరోధించవు). ప్రతి అభ్యర్థనలో `x-omniroute-disabled-guardrails` హెడర్ ద్వారా నిలిపివేయవచ్చు. → [`docs/security/GUARDRAILS.md`](docs/security/GUARDRAILS.md) చూడండి. ### 🧠 ప్రాంప్ట్ ఇంజెక్షన్ గార్డ్ LLM అభ్యర్థనలలో ప్రాంప్ట్ ఇంజెక్షన్ నమూనాలను గుర్తించే ఉత్తమ-ప్రయత్న హ్యూరిస్టిక్ మిడిల్వేర్. **ఇది సంపూర్ణ ప్రాంప్ట్-ఇంజెక్షన్ ఫైర్వాల్ కాదు** — తప్పుడు పాజిటివ్లు (హానికరం కాని పర్సోనా/RPG ప్రాంప్ట్లు), తప్పుడు నెగటివ్లు (లీట్స్పీక్, స్పేసింగ్, ఆంగ్లేతర నమూనాలు) సంభవించవచ్చు. | నమూనా రకం | తీవ్రత | ఉదాహరణ | | ------------------- | -------- | ------------------------------------------------------------ | | సిస్టమ్ ఓవర్రైడ్ | అధికం | "మునుపటి సూచనలన్నింటినీ విస్మరించు" | | పాత్ర హైజాక్ | మధ్యస్థం | "ఇప్పుడు నువ్వు DAN, నువ్వు ఏదైనా చేయగలవు" | | డీలిమిటర్ ఇంజెక్షన్ | అధికం | కాంటెక్స్ట్ సరిహద్దులను ఛేదించడానికి ఎన్కోడ్ చేసిన విభాజకాలు | | DAN/జైల్బ్రేక్ | మధ్యస్థం | తెలిసిన జైల్బ్రేక్ ప్రాంప్ట్ నమూనాలు | | సూచనల లీక్ | అధికం | "నీ సిస్టమ్ ప్రాంప్ట్ను నాకు చూపించు" | | ఎన్కోడింగ్ ఎగవేత | మధ్యస్థం | base64/rot13/hex డీకోడ్ + సూచన కీవర్డ్లు | `block` మోడ్లో **అధిక** తీవ్రత కలిగిన గుర్తింపులు మాత్రమే నిరోధించబడతాయి. మధ్యస్థ-తీవ్రత కుటుంబాలు లాగ్ చేయబడతాయి, కానీ `sanitizeRequest` ద్వారా ఎప్పటికీ నిరోధించబడవు. డ్యాష్బోర్డ్ (సెట్టింగ్లు → భద్రత) లేదా `.env` ద్వారా కాన్ఫిగర్ చేయండి: ```env INPUT_SANITIZER_ENABLED=true INPUT_SANITIZER_MODE=block # హెచ్చరించు | నిరోధించు (ఇంజెక్షన్ విధానం; పాత "redact" ఇంజెక్షన్ టెక్స్ట్ను తొలగించదు) INPUT_SANITIZER_BLOCK_THRESHOLD=high # అధికం (డిఫాల్ట్) | మధ్యస్థం | తక్కువ — బ్లాక్ మోడ్లో ఈ స్థాయి లేదా అంతకంటే ఎక్కువ తీవ్రతలు నిరోధించబడతాయి ``` ### 🔒 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 (US) | `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 భద్రత - ప్రొడక్షన్లో రూట్-కాని వినియోగదారును ఉపయోగించండి - రహస్యాలను చదవడానికి మాత్రమే అనుమతించే వాల్యూమ్లుగా మౌంట్ చేయండి - `.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ను కవర్ చేస్తుంది) - డిపెండెన్సీలను నవీకరించి ఉంచండి - ప్రీ-కమిట్ తనిఖీల కోసం ప్రాజెక్ట్ `husky` + `lint-staged`ను ఉపయోగిస్తుంది (lint-staged + check-docs-sync + check:any-budget:t11) - ప్రతి పుష్పై CI పైప్లైన్ 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. **రహస్యాలను ఎప్పుడూ కమిట్ చేయవద్దు** — `.env` gitignore చేయబడింది; `.env.example` టెంప్లేట్ (లిటరల్స్ ఉండవు, వ్యాఖ్యలు మాత్రమే — దిగువన ఉన్న PUBLIC_CREDS.md చూడండి) 2. **`eval()`, `new Function()`, లేదా పరోక్ష evalను ఎప్పుడూ ఉపయోగించవద్దు** — ESLint దీన్ని అమలు చేస్తుంది 3. స్పష్టమైన ఆపరేటర్ ఆమోదం లేకుండా **Husky హుక్లను ఎప్పుడూ దాటవేయవద్దు** (`--no-verify`, `--no-gpg-sign`) 4. **రూట్లలో ముడి SQLను ఎప్పుడూ వ్రాయవద్దు** — ఎల్లప్పుడూ `src/lib/db/` ద్వారా వెళ్లండి (పారామీటరైజ్డ్) 5. **ఇన్పుట్లను ఎల్లప్పుడూ Zodతో ధ్రువీకరించండి** — `src/shared/validation/schemas.ts` 6. **అప్స్ట్రీమ్ హెడర్లను ఎల్లప్పుడూ శానిటైజ్ చేయండి** — `src/shared/constants/upstreamHeaders.ts`లో డినైలిస్ట్ 7. **నిల్వలో ఉన్నప్పుడు క్రెడెన్షియల్స్ను ఎన్క్రిప్ట్ చేయండి** — `src/lib/db/encryption.ts` ద్వారా AES-256-GCM 8. **`resolvePublicCred()` ద్వారా పబ్లిక్ అప్స్ట్రీమ్ OAuth ఐడెంటిఫయర్లు** — సోర్స్లో `AIza…` / `GOCSPX-…` / `…apps.googleusercontent.com` లిటరల్స్ను ఎప్పుడూ పొందుపరచవద్దు. [`docs/security/PUBLIC_CREDS.md`](docs/security/PUBLIC_CREDS.md) చూడండి. 9. **`buildErrorBody()` / `sanitizeErrorMessage()` ద్వారా లోప ప్రతిస్పందనలు** — ముడి `err.stack` / `err.message`ను HTTP / SSE / executor / MCP ప్రతిస్పందన బాడీలలో ఎప్పుడూ ఉంచవద్దు. [`docs/security/ERROR_SANITIZATION.md`](docs/security/ERROR_SANITIZATION.md) చూడండి. 10. **`env` ఆప్షన్ ద్వారా `exec()` / `spawn()` రన్టైమ్ విలువలు** — బాహ్య పాత్లు లేదా నమ్మదగని విలువలను షెల్కు పంపే స్క్రిప్ట్లలోకి స్ట్రింగ్ ఇంటర్పోలేషన్ ద్వారా ఎప్పుడూ చేర్చవద్దు. సూచన: `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) — ఎంపిక చేసిన సెక్యూర్-బై-డిఫాల్ట్ లైబ్రరీలు