646
GB
What is 'dependency pinning' versus 'dependency ranges' in package management standards and what stability/security trade-off exists between them?
IN
पैकेज प्रबंधन मानकों में 'डिपेंडेंसी पिनिंग' बनाम 'डिपेंडेंसी रेंज' क्या है और उनके बीच कौन सी स्थिरता/सुरक्षा व्यापार-बंद मौजूद है?
A
Dependency pinning and ranges produce functionally identical builds in all circumstances
निर्भरता पिनिंग और श्रेणियां सभी परिस्थितियों में कार्यात्मक रूप से समान निर्माण उत्पन्न करती हैं
B
Pinning (exact version: 'lodash: 4.17.21') guarantees reproducible builds but requires manual intervention to receive security patches; ranges ('lodash: ^4.17.0') automatically receive compatible updates including security fixes but risk unexpected behaviour changes from a dependency's minor update breaking the application unexpectedly
पिनिंग (सटीक संस्करण: 'लॉश: 4.17.21') प्रतिलिपि प्रस्तुत करने योग्य निर्माण की गारंटी देता है लेकिन सुरक्षा पैच प्राप्त करने के लिए मैन्युअल हस्तक्षेप की आवश्यकता होती है; श्रेणियां ('लॉश: ^4.17.0') स्वचालित रूप से सुरक्षा सुधारों सहित संगत अपडेट प्राप्त करती हैं, लेकिन निर्भरता के मामूली अपडेट से अप्रत्याशित रूप से एप्लिकेशन को तोड़ने से अप्रत्याशित व्यवहार परिवर्तन का जोखिम होता है।
C
Dependency pinning is always insecure and should never be used in any production system
निर्भरता पिनिंग हमेशा असुरक्षित होती है और इसका उपयोग कभी भी किसी उत्पादन प्रणाली में नहीं किया जाना चाहिए
D
Dependency ranges eliminate the need for any dependency vulnerability scanning since updates are automatic
निर्भरता श्रेणियां किसी भी निर्भरता भेद्यता स्कैनिंग की आवश्यकता को खत्म कर देती हैं क्योंकि अपडेट स्वचालित होते हैं
✅ Correct Answer:
💡 Explanation / व्याख्या
Explanation (English)
The 2021 ua-parser-js npm supply chain attack illustrates the range risk: malicious code was published as a 'patch' update; projects using ranges automatically pulled the compromised version. Conversely, pinned dependencies that never update silently accumulate known vulnerabilities (e.g., the Equifax breach was partly due to an unpatched, pinned Apache Struts version). The modern best practice: pin exact versions for reproducibility AND use automated dependency update tools (Dependabot, Renovate) with required review, combining stability with timely patching.
व्याख्या (हिन्दी)
2021 यूए-पार्सर-जेएस एनपीएम आपूर्ति श्रृंखला हमला रेंज जोखिम को दर्शाता है: दुर्भावनापूर्ण कोड को 'पैच' अपडेट के रूप में प्रकाशित किया गया था; श्रेणियों का उपयोग करने वाली परियोजनाएं स्वचालित रूप से समझौता किए गए संस्करण को खींच लेती हैं। इसके विपरीत, पिन की गई निर्भरताएं जो कभी भी अपडेट नहीं होती हैं वे चुपचाप ज्ञात कमजोरियों को जमा करती हैं (उदाहरण के लिए, इक्विफैक्स उल्लंघन आंशिक रूप से एक अप्रकाशित, पिन किए गए अपाचे स्ट्रट्स संस्करण के कारण था)। आधुनिक सर्वोत्तम अभ्यास: पुनरुत्पादन के लिए सटीक संस्करण पिन करें और आवश्यक समीक्षा के साथ स्वचालित निर्भरता अद्यतन उपकरण (डिपेंडाबोट, रेनोवेट) का उपयोग करें, समय पर पैचिंग के साथ स्थिरता का संयोजन करें।