وحدة njs هي امتداد JavaScript الخاص بـ NGINX لإضافة منطق مخصص إلى معالجة طلبات HTTP وStream. وهي تتيح للمشغلين برمجة كيفية توجيه الطلبات أو تحويلها أو تمريرها، ويمكنها استدعاء ميزات مثل ngx.fetch() أثناء المعالجة. هذه المرونة تجعل NGINX أكثر قابلية للبرمجة، لكنها أيضًا توسّع سطح الهجوم إلى ما هو أبعد من التهيئة الثابتة.
من الناحية الأمنية، تكتسب njs أهمية لأن شيفرة معالجة الطلبات قد تصبح مشكلة تتعلق بحدود الثقة. إذا تم تمرير بيانات يتحكم فيها العميل إلى توجيهات مثل js_fetch_proxy، فقد يتمكن المهاجم من التأثير في سلوك وقت التشغيل الحساس والتسبب في أعطال أو، في بعض الحالات، تلف في الذاكرة. ينبغي للمدافعين حصر مواضع تفعيل njs، ومراجعة أي استخدام للمتغيرات في مسارات proxy أو fetch، وإزالة المنطق الديناميكي غير الضروري. كما أن إبقاء وجهات proxy ثابتة، وتطبيق التحديثات سريعًا، والحفاظ على وسائل الحماية مثل ASLR، يقلل من المخاطر عندما تكون njs جزءًا من نشر مكشوف عند الحافة.



