* ติดตั้งแพ็คเกจด้วย NPM/เส้นด้ายอย่างปลอดภัยโดยการตรวจสอบเป็นส่วนหนึ่งของกระบวนการติดตั้งของคุณ
ความครอบคลุมของสื่อเกี่ยวกับ NPQ:
เมื่อติดตั้ง NPQ แล้วคุณสามารถติดตั้งแพ็คเกจได้อย่างปลอดภัย:
npq install express
npq
จะดำเนินการตามขั้นตอนต่อไปนี้เพื่อตรวจสอบความมีสติว่าแพ็คเกจนั้นปลอดภัยโดยใช้การวิเคราะห์วิถีทางวากยสัมพันธ์และสอบถามฐานข้อมูล CVE:
หาก NPQ ได้รับแจ้งให้ดำเนินการต่อด้วยการติดตั้งมันจะส่งงานแพ็คเกจการติดตั้งจริงไปยัง Package Manager (NPM โดยค่าเริ่มต้น)
อย่างปลอดภัย* - ไม่มีความปลอดภัยที่รับประกันได้ แพ็คเกจที่เป็นอันตรายหรืออ่อนแอยังคงมีอยู่ซึ่งไม่มีช่องโหว่ด้านความปลอดภัยเปิดเผยต่อสาธารณชนและผ่านการตรวจสอบของ NPQ
npm install -g npq
หมายเหตุ: เราแนะนำให้ติดตั้งด้วย npm
มากกว่า yarn
ด้วยวิธีนี้ npq
สามารถติดตั้งนามแฝงเชลล์ให้คุณได้โดยอัตโนมัติ
npq install express
เนื่องจาก npq
เป็นขั้นตอนล่วงหน้าเพื่อให้แน่ใจว่าแพ็คเกจ NPM ที่คุณติดตั้งนั้นปลอดภัยคุณจึงสามารถฝังได้อย่างปลอดภัยในการใช้งาน npm
แบบวันต่อวันดังนั้นจึงไม่จำเป็นต้องจำไว้ว่าให้เรียกใช้ npq
อย่างชัดเจน
alias npm= ' npq-hero '
หากคุณใช้ yarn
หรือโดยทั่วไปต้องการบอก NPQ อย่างชัดเจนว่าตัวจัดการแพ็คเกจใดที่จะใช้คุณสามารถระบุตัวแปรสภาพแวดล้อม: NPQ_PKG_MGR=yarn
ตัวอย่าง: สร้างนามแฝงด้วยเส้นด้ายเป็นผู้จัดการแพ็คเกจ:
alias yarn= " NPQ_PKG_MGR=yarn npq-hero "
หมายเหตุ: npq
โดยค่าเริ่มต้นจะถ่ายโอนคำสั่งทั้งหมดและอาร์กิวเมนต์ของพวกเขาไปยังตัวจัดการแพ็คเกจ npm
หลังจากเสร็จสิ้นการครบกำหนดสำหรับแพ็คเกจที่เกี่ยวข้อง
ชื่อมาร์แชล | คำอธิบาย | หมายเหตุ |
---|---|---|
อายุ | จะแสดงคำเตือนสำหรับแพ็คเกจหากอายุของ NPM น้อยกว่า 22 วัน | ตรวจสอบวันที่สร้างแพ็คเกจไม่ใช่เวอร์ชันเฉพาะ |
ผู้เขียน | จะแสดงคำเตือนหากพบแพ็คเกจโดยไม่มีสาขาผู้เขียน | ตรวจสอบเวอร์ชันล่าสุดสำหรับผู้แต่ง |
การดาวน์โหลด | จะแสดงคำเตือนสำหรับแพ็คเกจหากจำนวนการดาวน์โหลดในเดือนที่แล้วน้อยกว่า 20 | |
readme | จะแสดงคำเตือนหากแพ็คเกจไม่มี readme หรือถูกตรวจพบว่าเป็นแพคเกจรักษาความปลอดภัยโดยพนักงาน NPM | |
repo | จะแสดงคำเตือนหากพบแพ็คเกจโดยไม่มี URL ที่เก็บที่ถูกต้องและใช้งานได้ | ตรวจสอบเวอร์ชันล่าสุดสำหรับ URL ที่เก็บข้อมูล |
สคริปต์ | จะแสดงคำเตือนหากแพ็คเกจมีสคริปต์ติดตั้งล่วงหน้า/โพสต์ซึ่งอาจเป็นอันตราย | |
สไนค์ | จะแสดงคำเตือนหากพบแพ็คเกจที่มีช่องโหว่ในฐานข้อมูลของ Snyk | เพื่อให้ Snyk ทำงานได้คุณต้องมีแพ็คเกจ snyk NPM ที่ติดตั้งด้วยโทเค็น API ที่ถูกต้องหรือทำให้โทเค็นมีอยู่ในตัวแปรสภาพแวดล้อม SNYK_TOKEN และ NPQ จะใช้มัน |
ใบอนุญาต | จะแสดงคำเตือนหากพบแพ็คเกจโดยไม่มีช่องใบอนุญาต | ตรวจสอบเวอร์ชันล่าสุดสำหรับใบอนุญาต |
โดเมนที่หมดอายุ | จะแสดงคำเตือนหากพบแพ็คเกจกับหนึ่งในผู้ดูแลที่มีที่อยู่อีเมลที่มีโดเมนหมดอายุ | ตรวจสอบเวอร์ชันการพึ่งพาสำหรับผู้ดูแลที่มีโดเมนหมดอายุ |
ลายเซ็น | จะเปรียบเทียบลายเซ็นของแพ็คเกจตามที่แสดงไว้ใน Pakument ของรีจิสทรีกับคีย์ที่เผยแพร่บนรีจิสทรี NPMJS.com | |
ที่มา | จะตรวจสอบการยืนยันของแพ็คเกจเกี่ยวกับข้อมูลเมตาที่มาสำหรับแพ็คเกจที่เผยแพร่ |
หากต้องการปิดการใช้งาน Marshall โดยสิ้นเชิงให้ตั้งค่าตัวแปรสภาพแวดล้อมโดยใช้ชื่อสั้น ๆ ของ Marshall
ตัวอย่างเพื่อปิดการใช้งาน Snyk Vulnerability Marshall:
MARSHALL_DISABLE_SNYK=1 npq install express
npq install express --dry-run
เรียนรู้เทคนิคการเข้ารหัสที่ปลอดภัยและแนวทางปฏิบัติที่ดีที่สุดจาก Liran Tal
npm install
จะติดตั้งโมดูลแม้ว่าจะมีช่องโหว่ NPQ จะแสดงปัญหาที่ตรวจพบและแจ้งให้ผู้ใช้ยืนยันว่าจะทำการติดตั้งต่อไปหรือไม่pre-install
ซึ่งอาจเป็นอันตรายต่อระบบของคุณและแจ้งให้คุณทราบว่าจะติดตั้งหรือไม่ ในขณะที่ npm audit
จะไม่ดำเนินการตรวจสอบดังกล่าวและปรึกษาฐานข้อมูลช่องโหว่สำหรับปัญหาด้านความปลอดภัยที่ทราบเท่านั้นnpm audit
นั้นใกล้เคียงกับฟังก์ชั่นกับสิ่งที่ Snyk ทำมากกว่าสิ่งที่ NPQ ทำโปรดปรึกษาการสนับสนุนแนวทางในการสนับสนุนโครงการนี้
Liran Tal [email protected]