ฉันจะตรวจสอบแพคเกจขนาดใหญ่ใน repo git ปลอดภัยได้อย่างไร


9

ฉันกำลังดูพวงมาลัย emacsโดยเฉพาะซึ่งมีคุณสมบัติดังต่อไปนี้:

  • มันมีความมุ่งมั่นหลายพัน
  • มันถูกบำรุงรักษาส่วนใหญ่โดยผู้ใช้คนหนึ่ง
  • ผู้ดูแลไม่มีโปรไฟล์อื่น ๆ (โซเชียลมีเดีย ฯลฯ ) ฉันสามารถค้นหาได้จากการค้นหาเพียงไม่กี่ครั้ง
  • มันได้รับการบำรุงรักษาอย่างแข็งขัน (วันนี้)

เนื่องจากฉันกำลังจะติดตั้งรหัสโดยพลการบนคอมพิวเตอร์ของฉันเพื่อใช้ในโปรแกรมแก้ไขข้อความของฉันฉันต้องการตรวจสอบว่าสิ่งนี้ได้ผ่านกระบวนการตรวจสอบใด ๆ หรือไม่ ฉันต้องการจะพูดว่า "โอเพนซอร์ส" แต่ฉันก็ยังห่างไกลจากความสามารถในการตรวจสอบรหัสทั้งหมดด้วยตัวเอง ฉันต้องการสมมติให้คนอื่น ๆ ในชุมชนได้ตรวจสอบ แต่สิ่งหนึ่งที่อาจเป็นเท็จและสองรายการมีความมุ่งมั่นล่าสุด มีกลยุทธ์อื่นที่ฉันขาดไปหรือไม่

สำหรับบันทึกแล้วเวกเตอร์นั้นง่าย: "โอเพ่นซอร์ส" ไม่สำคัญเลยว่าหากผู้มีส่วนร่วมทำงานภายใต้บัญชีผู้ใช้ที่ไม่มีใบอนุญาตหรือหากไม่มีกระบวนการตรวจสอบ


6
" ยืนยัน " เป็นคำที่ยิ่งใหญ่ ในความหมายของคำฉันคิดว่าคำตอบคือ "คุณทำไม่ได้ (คุณทำไม่ได้)" คุณสามารถติดตามกิจกรรมการพัฒนาสำหรับห้องสมุดและคุณสามารถตรวจสอบลายเซ็นดิจิทัลและสิ่งต่าง ๆ ได้ แต่ฉันเชื่อว่าไม่มีอะไรแน่นอน
ดึง

3
คำถามที่ดี. FWIW โค้ดที่มาพร้อมกับ Emacs จะได้รับการตรวจสอบ (ผ่านทางรายชื่ออีเมลของ emacs-diffs) แต่ถ้าผู้มีส่วนร่วมบางคนเพิ่มช่องโหว่ความปลอดภัยฉันแน่ใจว่าเขาสามารถทำได้โดยไม่ถูกสังเกต แน่นอนฉันจะแปลกใจถ้าไม่มีช่องโหว่ความปลอดภัยขนาดใหญ่จำนวนมากใน Emacs อยู่แล้วดังนั้นฉันไม่แน่ใจว่าปัญหานี้จะเกิดขึ้นมากแค่ไหน ดังนั้นฉันคิดว่าเพื่อให้สามารถได้คำตอบที่มั่นใจได้มากขึ้นเราจำเป็นต้องมุ่งเน้นไปที่ภัยคุกคามที่เรียบง่ายโดยเฉพาะ (เช่นควรตรวจสอบได้ง่ายว่ารหัสทำงานได้ดีหรือไม่
Stefan

2
ผู้ดูแลใช้งานบน emacs devel เป็นเวลาหลายปีซึ่งสามารถตรวจสอบได้ด้วยการค้นหาดังนั้นนี่คือความเชื่อมั่นบางอย่าง: lists.gnu.org/archive/cgi-bin/…
Tom

1
@ สเตฟานฉันคิดถึงการตรวจสอบเฉพาะจุด จากจุดของฉันในมุมมองmapatomsอาจจะใส่ลงใน "อันตราย" ร่วมกับกลุ่มstart-process, และeval funcallแน่นอนว่าจะมีผลบวกปลอม แต่ถ้าแพ็คเกจไม่ได้ใช้ฟังก์ชั่นเหล่านั้นมันสามารถถูกทำเครื่องหมายว่าไม่เป็นอันตรายด้วยความมั่นใจมาก
abo-abo

1
คุณต้องเพิ่มใหม่make-processเช่นเดียวกับcall-process, dbus-<foo>, make-network-streamและจากนั้นvc-do-command, vc-git-command, .... และถ้าคุณใส่evalและfuncallในหมวดหมู่ "อันตราย" แล้วส่วน / แพ็กเกจทั้งหมดจะมีอันตราย
สเตฟาน

คำตอบ:


7

คำตอบสั้น ๆ คือถ้าคุณไม่อ่านรหัสด้วยตัวคุณเอง ต้องบอกว่าการเชื่อถือโครงการที่มาจาก SCM ต้นน้ำนั้นปลอดภัยกว่าเล็กน้อยซึ่งถูกดึงมาโดยตรงจากEmacs Wikiเช่น อย่างไรก็ตามโดยพื้นฐานแล้วคุณกำลังไว้วางใจผู้แต่งแพ็คเกจว่าอย่าเปิดสิ่งชั่วร้ายและใช้ความสามารถในการใช้รหัสโดยอำเภอใจภายใต้เซสชัน Emacs ของคุณ

มีบางสิ่งที่อาจทำให้คุณรู้สึกปลอดภัย:

  • ทำตามแพ็คเกจยอดนิยม

แม้ว่าแพคเกจยอดนิยมจะไม่ได้รับการตรวจสอบโดยอัตโนมัติมากขึ้นความจริงที่ว่าพวกเขามีผู้ใช้มากขึ้นหมายถึงโอกาสในการตรวจพบพฤติกรรมที่เป็นอันตรายก่อนที่มันจะส่งผลต่อคุณเพิ่มขึ้น

  • ดูการวัดรหัส

ใน GitHub คุณจะได้รับมุมมองที่ดีของประวัติผลงานโครงการ แม้ว่าผู้เขียนหลักจะทำให้ความมุ่งมั่นส่วนใหญ่ที่มีผู้เขียนหลากหลายแสดงว่ามีคนอื่นที่มีความสนใจในความมั่นคงและประสิทธิผลของรหัส

  • ต้องการ GNU ELPA และ MELPA ที่มีความเสถียรสำหรับที่เก็บการติดตาม HEADs (MELPA) หรืออนุญาตการส่งที่ไม่ผ่านการตรวจ (Marmalade)

ในขณะที่การใช้ชีวิตบนขอบเลือดออกมีบางสิ่งที่ดึงดูดใจสำหรับผู้ที่ต้องการคุณสมบัติที่เป็นประกายล่าสุดนั่นหมายความว่าคุณอาจเป็นคนแรกที่ยอมรับความมุ่งมั่นล่าสุดในสภาพแวดล้อมของคุณ แม้ว่าจะไม่เป็นอันตราย แต่คุณอาจได้รับแพ็คเกจในสถานะที่เป็นฟลักซ์ในขณะที่รุ่น "อย่างเป็นทางการ" อย่างน้อยก็จะมีบทวิจารณ์คร่าวๆอยู่บ้าง ตัวอย่างเช่นแพ็คเกจ GNU ELPA จะได้รับการยินยอมจากผู้ใช้ emacs-devel ที่มีสิทธิ์ในการกระทำ

ในที่สุดฉันก็มั่นใจว่าในบางครั้งจะเป็นการละเมิดความปลอดภัยผ่านระบบแพ็คเกจแม้ว่ามันจะเป็นเพียงหลักฐานการทดสอบแนวคิด นั่นจะเป็นจุดที่คุณอาจต้องใช้การสำรองข้อมูลปกติของคุณ


1
Marmalade เป็นไฟล์เก็บถาวรที่น่าสงสารเมื่อมันมาถึง“ ความไว้วางใจ” อนุญาตให้ทุกคนอัปโหลดแพ็คเกจใด ๆ ภายใต้ชื่อใดก็ได้โดยไม่มีการยืนยันหรือตรวจสอบ และมันก็ไม่ได้รับการดูแลอย่างดี (เพียงดูที่จำนวนปัญหาเปิด)
Lunaryorn

@ Lunaryorn: จุดดีฉันจะแก้ไขคำตอบ
stsquad

@lunaryorn MELPA มีปัญหาที่เปิดกว้างมากกว่าที่เก็บ elmarmalade ดังนั้นฉันสงสัยว่านี่เป็นเมตริกที่ใช้งานได้
wasamasa

@stsquad สิ่งเดียวที่ MELPA Stable ช่วยให้คุณได้รับการติดแท็กสิ่งต่าง ๆ ที่จะลงเอยใน MELPA อย่างไรก็ตามฉันไม่เห็นว่าปลอดภัยกว่าการใช้ Marmalade
wasamasa

1
@wasamasa ขออภัยความคิดเห็นของฉันใช้ถ้อยคำไม่ดี จำนวนนั้นไม่ได้บอกอะไรมากนัก แต่ปัญหาที่เปิดอยู่กำลังบอกว่า: ไม่มีปฏิกิริยาตอบสนองต่อปัญหาใหม่ไม่มีความคิดเห็นแม้แต่ป้ายกำกับหรือการมอบหมาย Marmalade ตายอย่างมีประสิทธิภาพ
จันทร์ที่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.