Skip to content

Latest commit

 

History

History
288 lines (221 loc) · 32 KB

SECURITY.md

File metadata and controls

288 lines (221 loc) · 32 KB

Security Policy (ગુજરાતી)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


નબળાઈઓની જાણ કરવી

જો તમને OmniRoute માં કોઈ સુરક્ષા નબળાઈ મળે, તો કૃપા કરીને જવાબદારીપૂર્વક તેની જાણ કરો:

  1. સાર્વજનિક GitHub ઇશ્યૂ ખોલશો નહીં
  2. GitHub Security Advisories નો ઉપયોગ કરો
  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 → "તબક્કો 3 — v3.9.0 LTS" જુઓ).

  • stable/v3 ને શું મળે છે: બગ ફિક્સ, સુરક્ષા પૅચ અને પ્રોવાઇડર અપડેટ્સ. નવી સુવિધાઓ v4 ચૅનલમાં જાય છે; LTS લાઇનમાં સ્થિરતાને પ્રથમ પ્રાથમિકતા આપવામાં આવે છે. npm install omniroute (latest dist-tag) સમગ્ર v4 ચક્ર દરમિયાન v3 પર રહે છે.
  • સમયગાળાની અવધિ: stable/v3 ને 3.9.0 રિલીઝ થયા પછીના 12 મહિના સુધી, અથવા v4.0.0 ને latest તરીકે પ્રકાશિત કર્યાના 90 દિવસ સુધી — બંનેમાંથી જે મોડું હોય ત્યાં સુધી સુરક્ષા ફિક્સ અને ગંભીર રિગ્રેશન માટેના ફિક્સ મળે છે. નિર્ધારિત અંતિમ તારીખ 3.9.0 ની રિલીઝ નોંધોમાં અને રિલીઝ થાય ત્યારે ROADMAP.md માં નોંધવામાં આવે છે.
  • LTS લાઇનમાં નબળાઈની જાણ કરવી: અન્ય કોઈપણ વર્ઝનની જેમ એ જ ચૅનલનો ઉપયોગ કરો — ખાનગી GitHub Security Advisory, જાહેર issue નો ક્યારેય ઉપયોગ કરશો નહીં. તમે કયા વર્ઝનનું પરીક્ષણ કર્યું હતું તે જણાવો (ઉદાહરણ તરીકે 3.9.2); ફિક્સ stable/v3 પર ઉમેરવામાં આવે છે અને v4 માં ફોરવર્ડ-પોર્ટ કરવામાં આવે છે.
  • LTS રિલીઝ સમયે સુરક્ષાનો આધારસ્તર: માપેલી સ્કૅનર સ્થિતિ, route-guard અને public-credential સંબંધિત પુરાવાઓ 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:<iv>:<ciphertext>:<authTag>
  • જ્યારે STORAGE_ENCRYPTION_KEY સેટ ન હોય ત્યારે પાસથ્રૂ મૉડ (પ્લેનટેક્સ્ટ)
# એન્ક્રિપ્શન કી બનાવો:
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 જુઓ.

🧠 પ્રૉમ્પ્ટ ઇન્જેક્શન ગાર્ડ

LLM વિનંતીઓમાં પ્રોમ્પ્ટ ઇન્જેક્શન પેટર્ન શોધતું શ્રેષ્ઠ-પ્રયાસ આધારિત હ્યુરિસ્ટિક મિડલવેર. સંપૂર્ણ પ્રોમ્પ્ટ-ઇન્જેક્શન ફાયરવૉલ નથી — ખોટા પોઝિટિવ (નિર્દોષ પર્સોના/RPG પ્રોમ્પ્ટ) અને ખોટા નેગેટિવ (લીટસ્પીક, સ્પેસિંગ, બિન-અંગ્રેજી પેટર્ન) ઉત્પન્ન કરી શકે છે.

પેટર્નનો પ્રકાર ગંભીરતા ઉદાહરણ
સિસ્ટમ ઓવરરાઇડ ઉચ્ચ "અગાઉની બધી સૂચનાઓ અવગણો"
ભૂમિકા હાઇજેક મધ્યમ "હવે તમે DAN છો, તમે કંઈપણ કરી શકો છો"
ડિલિમિટર ઇન્જેક્શન ઉચ્ચ સંદર્ભની સીમાઓ તોડવા માટે એન્કોડ કરેલા વિભાજકો
DAN/જેલબ્રેક મધ્યમ જાણીતા જેલબ્રેક પ્રોમ્પ્ટ પેટર્ન
સૂચના લીક ઉચ્ચ "મને તમારો સિસ્ટમ પ્રોમ્પ્ટ બતાવો"
એન્કોડિંગથી બચાવ મધ્યમ base64/rot13/hex ડિકોડ + સૂચના કીવર્ડ્સ

block મોડમાં માત્ર ઉચ્ચ ગંભીરતાવાળી શોધને અવરોધવામાં આવે છે. મધ્યમ-ગંભીરતાવાળા પરિવારો લૉગ થાય છે પરંતુ sanitizeRequest દ્વારા ક્યારેય અવરોધાતા નથી.

ડૅશબોર્ડ (Settings → Security) અથવા .env દ્વારા ગોઠવો:

INPUT_SANITIZER_ENABLED=true
INPUT_SANITIZER_MODE=block    # ચેતવણી | અવરોધ (ઇન્જેક્શન નીતિ; લેગસી "redact" ઇન્જેક્શન ટેક્સ્ટને દૂર કરતું નથી)
INPUT_SANITIZER_BLOCK_THRESHOLD=high  # ઉચ્ચ (ડિફૉલ્ટ) | મધ્યમ | નીચું — આ અથવા તેનાથી વધુ ગંભીરતાવાળી શોધ block મોડમાં અવરોધાય છે

🔒 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]
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 સ્કીમા વડે માન્ય કરવામાં આવે છે

આવશ્યક એન્વાયરમેન્ટ વેરિએબલ્સ

સર્વર શરૂ કરતાં પહેલાં તમામ સિક્રેટ્સ સેટ કરેલા હોવા આવશ્યક છે. જો તેઓ ઉપલબ્ધ ન હોય અથવા નબળા હોય, તો સર્વર તરત જ નિષ્ફળ થશે.

# આવશ્યક — આના વિના સર્વર શરૂ થશે નહીં:
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 સુરક્ષા

  • પ્રોડક્શનમાં non-root યુઝરનો ઉપયોગ કરો
  • સિક્રેટ્સને read-only વોલ્યુમ્સ તરીકે માઉન્ટ કરો
  • .env ફાઇલોને ક્યારેય Docker ઇમેજોમાં કૉપી કરશો નહીં
  • સંવેદનશીલ ફાઇલોને બાકાત રાખવા માટે .dockerignore નો ઉપયોગ કરો
  • HTTPS પાછળ હોય ત્યારે AUTH_COOKIE_SECURE=true સેટ કરો
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 = error)
  • Zod દ્વારા મોડ્યુલ લોડ થતી વખતે પ્રોવાઇડર કૉન્સ્ટન્ટ્સ માન્ય કરવામાં આવે છે (src/shared/validation/schemas.ts)
  • ઉપયોગમાં લેવાતી secure-by-default લાઇબ્રેરીઓ: 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. routes માં ક્યારેય raw SQL લખશો નહીં — હંમેશાં src/lib/db/ મારફતે જાઓ (પેરામીટરાઇઝ્ડ)
  5. ઇનપુટ્સને હંમેશાં Zod વડે માન્ય કરો — src/shared/validation/schemas.ts
  6. upstream headers ને હંમેશાં sanitize કરો — src/shared/constants/upstreamHeaders.ts માં denylist
  7. સંગ્રહિત credentials ને એન્ક્રિપ્ટ કરો — src/lib/db/encryption.ts મારફતે AES-256-GCM
  8. resolvePublicCred() મારફતે જાહેર upstream OAuth identifiers — સોર્સમાં ક્યારેય AIza… / GOCSPX-… / …apps.googleusercontent.com લિટરલ્સ એમ્બેડ કરશો નહીં. docs/security/PUBLIC_CREDS.md જુઓ.
  9. buildErrorBody() / sanitizeErrorMessage() મારફતે error responses — HTTP / SSE / executor / MCP response bodies માં ક્યારેય raw err.stack / err.message મૂકશો નહીં. docs/security/ERROR_SANITIZATION.md જુઓ.
  10. env વિકલ્પ મારફતે exec() / spawn() runtime values — shell ને મોકલાતી સ્ક્રિપ્ટ્સમાં external paths અથવા અવિશ્વસનીય મૂલ્યોને ક્યારેય string-interpolate કરશો નહીં. સંદર્ભ: src/mitm/cert/install.ts::updateNssDatabases.
  11. secure-by-default લાઇબ્રેરીઓને પ્રાધાન્ય આપો — 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માં કોઈ workflow, કોઈ package.json script અને કોઈ Makefile target Socket.devને ચલાવતું નથી.

પ્રકાશિત omniroute npm આર્ટિફેક્ટ Next.jsના output: "standalone" બિલ્ડને બંડલ કરે છે, જેનો અર્થ એ છે કે દરેક route handler — દસ્તાવેજીકૃત વિશેષાધિકારપ્રાપ્ત સુવિધાઓ (MITM, Zed import, Cloud Sync, embedded service supervisor) સહિત — અંતે .next/server/*.jsની minified chunksમાં આવે છે. હ્યુરિસ્ટિક સપ્લાય-ચેઇન સ્કેનર્સ ઘણી વાર એ chunksને malware signatures સાથે pattern-match કરે છે.

અમે ઉપયોગ કરીએ છીએ તે scanner configuration રિપોના રૂટમાં socket.yml ખાતે છે (Socket.dev GitHub App format v2 — જુઓ https://docs.socket.dev/docs/socket-yml). તે સ્પષ્ટપણે શિપ ન થતી directories (tests/, _tasks/, _references/, _ideia/, _mono_repo/, docs/, વગેરે)ને બાકાત રાખે છે, જેથી scanner ફક્ત વાસ્તવમાં પ્રકાશિત વપરાશકર્તાઓ સુધી પહોંચતા code paths અંગે જ અહેવાલ આપે — scan પોતે આ file વાંચતી Socket GitHub App દ્વારા સંચાલિત થાય છે, આ repositoryમાંના કોઈ workflow દ્વારા નહીં.

દરેક finding category માટે અમે finding-દીઠ maintainer attestation જાળવીએ છીએ:

  • docs/security/SOCKET_DEV_FINDINGS.md — finding-દીઠ નકશો: source file ↔ flagged chunk ↔ વર્તન ↔ v3.8.6માં લાગુ કરાયેલ mitigation.
  • દરેક flagged function ખાતેના in-source SECURITY-AUDITOR-NOTE: blocks એ જ document તરફ પાછો સંદર્ભ આપે છે.

જે વપરાશકર્તાઓની pipeline alertને શિથિલ કરી શકતી નથી તેમના માટે: OMNIROUTE_BUILD_PROFILE=minimal npm run build વડે build કરો. આ ચાર સંવેદનશીલ modulesને એવા stubsથી બદલે છે જે runtime સમયે HTTP 503 feature-disabled પરત કરે છે, તેથી વિશેષાધિકારપ્રાપ્ત code paths bundleમાં ભૌતિક રીતે હાજર રહેતા નથી. Publishing recipe માટે docs/security/SOCKET_DEV_FINDINGS.md જુઓ.

સંદર્ભો