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

หากคุณสมัครใช้บริการจากลิงก์ในหน้านี้ Reeves and Sons Limited อาจได้รับค่าคอมมิชชั่น ดูของเรา คำสั่งจริยธรรม.

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

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

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

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

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

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

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

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

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

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

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

แน่นอนว่าแทบไม่มีใครรบกวนอ่านรายการข้อกำหนดและเงื่อนไขที่น่าเบื่อเหล่านี้ แต่นั่นอาจเป็นข้อผิดพลาดได้

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ความคิดเห็น 0 คำตอบ

เขียนความเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมาย *

อันดับ *

ไซต์นี้ใช้ Akismet เพื่อลดสแปม เรียนรู้วิธีการประมวลผลข้อมูลความคิดเห็นของคุณ.