2016-08-18 12 views
6

यह देखते हुए कि नोडजेएस कितना लोकप्रिय है, और एनपीएम कैसे काम करता है ... यह सुनिश्चित करने का सबसे अच्छा तरीका क्या है कि आप कभी भी असुरक्षित/मैलवेयर पैकेज स्थापित न करें? मेरे लिए यह आर्किटेक्चर में एक बड़ा अंतर छेद प्रतीत होता है, जो पूरी तरह से उपयोगकर्ता समीक्षाओं पर निर्भर करता है, स्टैक ओवरव्लो, व्यक्तिगत ब्लॉग इत्यादि जैसी साइटों पर टिप्पणियां। मैंने थोड़ी सी खोज की है और मुझे लगता है कि मुझे "योजना" शिकायत दर्ज करने के बाद अपमानजनक उपयोगकर्ताओं को हटाने के लिए कहा गया है कि उपयोगकर्ताओं ने आचार संहिता तोड़ दी है।नोडजेएस और एनपीएम: पैकेज सुरक्षा

NPM आचार संहिता https://www.npmjs.com/policies/conduct

यहाँ कैसे आप एक पैकेज प्रकाशित है ... https://docs.npmjs.com/getting-started/publishing-npm-packages

तो मैं किसी को ... है शायद एक बहुत ही उपयोगी बना सकते हैं क्या बुरा चीजों की तरह के बारे में सोचना शुरू कर दिया पैकेज, फिर ट्रोजन घोड़े को एक पैकेज पर निर्भरता के साथ घोड़ा जो कुछ बुरा करता है। यहां तक ​​कि अगर मैं (संस्थापक के रूप में) संकुल मैं व्यक्तिगत रूप से स्थापित करने की समीक्षा की, मैं शायद अपमानजनक कोड नहीं पकड़ कभी नहीं, खासकर अगर कोड अस्पष्ट किया गया था, इस तरह:

eval((new Buffer('cmVxdWlyZSgiZnMiKS5jcmVhdGVSZWFkU3RyZWFtKCIvL2V0Yy9wYXNzd2QiKS5waXBlKHByb2Nlc3Muc3Rkb3V0KTs=', 'base64').toString())); 

इस कोड को बस गूँज/etc/पासवर्ड अपने मानक बाहर फ़ाइल। और कुछ नहीं। इसे चलाने से साबित करें:

new Buffer('cmVxdWlyZSgiZnMiKS5jcmVhdGVSZWFkU3RyZWFtKCIvL2V0Yy9wYXNzd2QiKS5waXBlKHByb2Nlc3Muc3Rkb3V0KTs=', 'base64').toString() 

आप में से जो लोग eval पकड़ते हैं, आपके लिए अच्छा है! मैं बिना किसी eval के इस कई अलग-अलग तरीकों को लपेट सकता हूं, इसलिए इसे सिर्फ एक उदाहरण के रूप में लिया जाना चाहिए।

तो, उन सभी के साथ ... इस घटना से निपटने के लिए समुदाय क्या कर रहा है? मेरे सिस्टम को सुरक्षित रखने के तरीके पर मुझे और कहां मिल सकता है?

+0

संपूर्ण समुदाय सुरक्षा विश्वास पर आधारित है और उम्मीद है कि सब ठीक हो जाएगा। – zerkms

+0

मुझे लगता है कि सभी पैकेज खुले-सोर्स किए जाने चाहिए, किसी के लिए किसी दुर्भावनापूर्ण चीज़ में छेड़छाड़ करना मुश्किल हो जाता है। बिना eval के कोड को भी देख रहे हैं, कोई स्पष्ट उद्देश्य वाला पाठ खतरनाक है। आप पैकेज के आश्रितों की संख्या भी देख सकते हैं और पोस्ट किए गए मुद्दों के लिए अपने रेपो को भी देख सकते हैं, कितने लोगों ने पुल अनुरोध सबमिट करने के लिए पर्याप्त कोड पढ़ा है, आदि – csander

+0

ओपन सोर्स ट्रस्ट _and_ सत्यापन – dandavis

उत्तर

3

यह सुनिश्चित करने के लिए संभावित समाधानों में से एक है कि आप एनपीएम से स्थापित पैकेज सुरक्षित हैं nsp का उपयोग करना है: नोड सुरक्षा (nodesecurity.io) टीम द्वारा प्रदान की गई कमांड लाइन उपयोगिता।

$ npm install -g nsp 

फिर, अपनी परियोजना (जहां package.json स्थित है) की निर्देशिका में:

enter image description here

:

$ nsp check 

संभव कमजोरियों के साथ एक रिपोर्ट का उत्पादन होगा, यहाँ उदाहरण है

+1

क्या 'nsp' सुरक्षित है? : पी – undefined

+1

अच्छा सवाल। इस पहल के पीछे मुख्य लड़का है: https://medium.com/node-security/announcing-the-node-security-platform-28c99f872688#.ty9fgckws –

+0

Dagnabit। तुमने मुझे पराजित किया। मैंने यह पाया और मेरे अपने प्रश्न का उत्तर देने का मतलब था। :) वैसे भी, मैं आपका जवाब स्वीकार कर रहा हूं ... लेकिन मैं पूरी तरह से सब कुछ के लिए इंस्टॉल पर -g के खिलाफ हूं, जब तक कि आपके पास एनवीएम इंस्टॉल न हो। [यहां क्यों देखें] (http://brokenpromises.io/2016/08/15/where-do-i-start/)। मैंने आज कुछ घंटे पहले हीखरी को पूर्ववत करने में 3 घंटे बिताए थे। – PRS

संबंधित मुद्दे