อันตรายจากการพึ่งพารหัสของบุคคลที่สาม

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

ทุกครั้งที่คุณเห็นลิงก์เล็ก ๆ ที่ด้านล่างของหน้าเว็บที่ระบุว่า“ Powered by So-And-So” คุณจะได้เห็นผลการทำงานร่วมกันนี้ในทางปฏิบัติ

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

1. ความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้น

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

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

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

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

2. คุณไม่ได้เป็นเจ้าของมัน

นี่คือการรวมกันของปัญหา ข้อแรกคือคุณอาจต้องปฏิบัติตามข้อกำหนดสิทธิการใช้งานที่หลากหลาย เมื่อคุณมีการใช้แฟรกเมนต์หลายรหัสในหน้าเว็บหรือแอปพลิเคชันเดียวคุณอาจต้องปฏิบัติตามข้อกำหนดและเงื่อนไขการให้สิทธิ์ใช้งานที่แตกต่างกันหลายประการและสิ่งเหล่านี้บางอย่างอาจขัดแย้งกัน

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

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

3. คุณมักจะได้รับมากกว่าที่คุณต้องการ

รหัสของ บริษัท อื่นมักจะทำงานเพื่อทำงานที่คุณต้องการ แต่บางครั้งมันมีคุณสมบัติพิเศษทุกชนิดที่คุณไม่ต้องการและอาจจะไม่เคยใช้ ในบางกรณีคุณไม่สามารถลบคุณสมบัติพิเศษเหล่านั้นได้อย่างง่ายดายหรือแม้แต่ทั้งหมด คุณอาจต้องประนีประนอม คุณลักษณะนี้อาจทำบางสิ่งบางอย่างใกล้เคียงกับสิ่งที่คุณต้องการ แต่ไม่ตรงตามที่คุณต้องการ คุณค้าขายกับความสุดยอดเพราะมีงานต้องทำน้อยและนั่นไม่ใช่การค้าที่ดีเสมอไป

4. การพึ่งพาบุคคลที่สามหลายระดับสามารถนำไปสู่ปัญหาที่แท้จริง

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

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

Left-Pad เป็นฟังก์ชั่นที่ง่ายมากเพียงแค่เพิ่มช่องว่างสองสามอันที่ด้านซ้ายของบรรทัดเพื่อให้แน่ใจว่าบรรทัดนั้นมีความยาวที่ถูกต้อง ตอนนี้ปัญหาที่นี่คือโปรแกรมเมอร์ผู้มีความสามารถใด ๆ สามารถทำซ้ำฟังก์ชันการทำงานได้อย่างง่ายดาย ไม่จำเป็นต้องมีแอพพลิเคชั่นใด ๆ ที่จะขึ้นอยู่กับฟังก์ชั่นของบุคคลที่สามนี้และยังมีเว็บไซต์หลายพันแห่งที่ใช้ซอฟต์แวร์ที่รวมอยู่ในนั้นรวมถึง Netflix, Facebook และ Reddit มันเป็นเพียงโชคดีที่ในกรณีนี้มันเป็นฟังก์ชั่นที่ง่ายมากที่ทำให้โซ่แตกและไม่ใช่ฟังก์ชันที่ซับซ้อนจริงๆที่มีสายโซ่พึ่งพาของตัวเอง

บรรทัดล่างคือถ้าคุณสามารถสร้างมันด้วยตัวคุณเองคุณอาจจะต้อง!

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

เพื่อให้กระบวนการตัดสินใจง่ายขึ้นเงื่อนไขการทดสอบต่อไปนี้อาจช่วยได้

หากปัจจัยเหล่านี้เป็นจริง:

  • ฟังก์ชั่นที่คุณต้องการนั้นง่าย
  • คุณ (หรือทีมของคุณ) มีความสามารถในการสร้างฟังก์ชั่น
  • มีเวลาอีกมากในการสร้างฟังก์ชั่น
  • แอปพลิเคชันของคุณต้องการความปลอดภัยที่ดี
  • คุณมีความกังวลเกี่ยวกับปัญหาทางกฎหมายที่อาจเกิดขึ้นจากการให้สิทธิ์บุคคลที่สาม
  • สิ่งสำคัญคือแอปพลิเคชันของคุณไม่ควรล้มเหลว

จากนั้นคุณควรสร้างมันเอง

ELSE อาจมีประสิทธิภาพมากกว่าในการใช้ฟังก์ชั่นของบุคคลที่สามโดยที่คุณทราบถึงปัญหาที่อาจเกิดขึ้นและคุณมีกลยุทธ์ในการจัดการสิ่งที่คุณจะทำหากมีปัญหาเกิดขึ้น

มารยาทภาพส่วนหัวของ สเตฟานีทักเกอร์

บ็อกดานแรนเซีย

บ็อกแดนเป็นสมาชิกผู้ก่อตั้งของนิตยสาร Inspired Mag ซึ่งสะสมประสบการณ์เกือบ 6 ปีในช่วงเวลานี้ ในเวลาว่างเขาชอบเรียนดนตรีคลาสสิกและสำรวจทัศนศิลป์ เขาค่อนข้างหมกมุ่นอยู่กับ fixies เช่นกัน เขาเป็นเจ้าของ 5 คนแล้ว