दस्तावेज़परंपराएँ और अवधारणाएँ

सुरक्षा

नेक्सी अपनी हमले की सतह को कैसे छोटा रखती है, उसे किन संस्करणों की आवश्यकता है, और किसी प्रोजेक्ट की जांच कैसे करें।

संस्करण फर्श

नेक्सी FastAPI, Starlette, Jinja2, Vite और React पर निर्भर करता है। एक मंजिल सबसे निचला संस्करण है जिसे नेक्सी अनुमति देता है; प्रत्येक व्यक्ति एक प्रकाशित सलाह का उत्तर देता है।

पैकेज मंजिल क्यों
starlette 1.0.1 सीवीई-2026-48710 (बैडहोस्ट): एक तैयार किया गया Host हेडर पथ Starlette रिपोर्ट को मिडलवेयर में बदल देता है, जो request.url.path पर लिखे प्राधिकरण को बायपास कर देता है। सीआईएसए द्वारा शोषित के रूप में सूचीबद्ध।
fastapi 0.133.0 पहली रिलीज़ जो एक निश्चित को स्वीकार करती है Starlette
jinja2 3.1.6 attr फिल्टर (सीवीई-2025-27516) के माध्यम से सैंडबॉक्स से बचना
vite (मचान वाली परियोजनाएं) 6.4.3 server.fs.deny विंडोज़ वैकल्पिक पथों पर बायपास (सीवीई-2026-53571); पहले वाला क्वेरी-स्ट्रिंग बाईपास (CVE-2026-39364) केवल Vite 7.1-7.3.1 और 8.0.0-8.0.4 को प्रभावित करता है
react, react-dom 19.2.5 2026 React सलाह react-server-dom-* पैकेजों से संबंधित है, जिनका नेक्सी उपयोग नहीं करता है; फर्श लाइन को पैच करके रखता है

अपने हल किए गए संस्करण जांचें:

uv pip list | grep -i -E "starlette|fastapi|jinja2"npm ls vite

नेक्सी नियमों का पालन करता है

  • पथों के लिए होस्ट हेडर पर कभी भरोसा न करें। नेक्सी अपने स्वयं के मिडलवेयर (निर्देशिका मिडलवेयर) में scope["path"] पढ़ता है, न कि request.url.path। अपने में भी वैसा ही करो.
  • जो HTML तक पहुंचता है उससे बचें। क्लाइंट घटकों को दिए गए प्रॉप्स, Link विशेषताएँ, Image, Audio और Video विशेषताएँ, सामग्री तालिका एंकर और HTTPException विवरण सभी HTML से बच गए हैं। एक .nexy टेम्प्लेट अपने आप नहीं बचता: विज़िटर या डेटाबेस से आने वाले किसी भी मूल्य के लिए {{ value | e }} लिखें, और उपयोगकर्ता इनपुट पर कभी भी | safe न लिखें।
  • डेवलपर एंडपॉइंट केवल लूपबैक और संकीर्ण हैं। डेव रेंडर एंडपॉइंट (/__nexy__/render) केवल src/routes/ के तहत .tsx या .jsx एक्सटेंशन वाली फाइलों को स्वीकार करता है, और केवल डेव सर्वर के माध्यम से पहुंच योग्य है, जो विदेशी Host हेडर को अस्वीकार करता है।
  • त्रुटि विवरण लीक नहीं होते। एक त्रुटि पृष्ठ जो स्वयं विफल रहता है वह केवल स्थिति कोड दिखाता है।
  • प्रोडक्शन उत्तरों में सुरक्षित हेडर होते हैं। X-Content-Type-Options: nosniff और Referrer-Policy: strict-origin-when-cross-origin, जब तक कि आपका कोड स्वयं सेट न हो जाए। Server हेडर नहीं भेजा गया है। अपने प्रॉक्सी या मिडलवेयर में Strict-Transport-Security और Content-Security-Policy जोड़ें: वे आपके डोमेन पर निर्भर करते हैं।
  • क्रैश एक संदर्भ दिखाता है, त्रुटि नहीं। देखें त्रुटि पृष्ठ।
  • नेक्सी के Python कोड में कोई eval और कोई shell=True नहीं है। बाहरी प्रोग्राम एक तर्क सूची के साथ चलते हैं।

ऑडिट चला रहे हैं

python scripts/audit_dependencies.py        # Python dependencies against the locknpm audit                                    # in a scaffolded projectuv run bandit -r nexy -c .bandit             # static analysis of Nexy itself

नेक्सी का अपना भंडार अपने चेक में पहला और तीसरा चलाता है। ऊपर की मंजिल पर एक नई सलाह को pyproject.toml में या मचान में package.json फर्श को ऊपर उठाकर, फिर ताले को पुनर्जीवित करके नियंत्रित किया जाता है।

सुरक्षित तैनाती

  • useTrustedHost को अपने डोमेन पर सेट करें: यह किसी भी रूट से पहले अप्रत्याशित Host हेडर को अस्वीकार कर देता है।
  • Vite डेव सर्वर को उजागर न करें: nx dev इसे नेक्सी मूल के पीछे लूपबैक पर रखता है।
  • यदि एपीआई स्कीमा सार्वजनिक नहीं होनी चाहिए तो useDocs = False सेट करें।

मिडिलवेयर और सुरक्षा देखें।

सूत्र

अगले चरण

GitHub पर संपादित करें

Enter परिणाम खोलता है, Esc बंद करता है।