ข้ามไปที่เนื้อหาหลัก

บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ การพัฒนาโปรแกรม

เรื่องเล่าโปรเจค 1: จะรันโค้ดโปรแกรมยังไง

หลังจากที่เสนอหัวข้อกับอาจารย์ที่ปรึกษาผ่าน แต่ก็ยังมีปัญหา คือ จะรันโค้ดโปรแกรมที่รับมาจาก user แล้วตรวจกับเก็บผลลัพธ์ยังไง ก่อนหน้านี้ ผมบังเอิญไปเจอไลบรารีตัวหนึ่งใน python ที่สามารถยิงคำสั่งโค้ดเข้าไปรันใน docker โดยจำกัดเวลา แรม CPU เครือข่าย ในการทำงานได้ แถมส่งออกมาเป็นผลลัพธ์ได้ ผมจึงเขียนระบบตรวจสอบโค้ดในภาษา python แต่ปัญหายังไม่จบลงแค่นั้น ส่วนหน้าบ้านผมกับเพื่อน ตกลงกันว่าจะใช้ PHP ด้วย laravel ในการเขียนส่วนหน้าบ้านทั้งหมด ต่างภาษากัน จึงต้องเขียน API ให้หน้าบ้านยิงคำสั่งตรวจกับข้อมูลไปหาระบบตรวจที่เป็น python ใช้รูปแบบข้อมูล json ในการยิงและส่ง ปัญหายังไม่จบ คือ จะเก็บข้อมูลยังไง ผมเลยตัดจบปัญหา โดยให้ทั้งระบบหน้าบ้านและระบบตรวจสอบโค้ดใช้ฐานข้อมูลตัวเดียวกันเลย เวลาหน้าบ้านยิงไป จะได้ยิงแค่ไอดีและข้อมูลที่จำเป็นเท่านั้น แล้วผลลัพธ์ลงฐานข้อมูลเลย  

โปรแกรมที่ปิดโค้ดหรือโปรแกรมที่เปิดโค้ด อันไหนมีความปลอดภัยมากกว่ากัน ?

 นกเป็นผู้นักพัฒนาระบบกำลังมองว่าโปรแกรมนำมาใช้งาน โดยตัวเลือกมีทั้งโปรแกรมที่ปิดโค้ดและโปรแกรมที่เปิดโค้ด นกตัดสินใจไม่ถูกว่าโปรแกรมอันไหนดีกว่ากัน เรามาหาคำตอบกัน โปรแกรมที่ปิดโค้ด เป็นโปรแกรมที่ปกปิดโค้ดการทำงานของโปรแกรม เพราะเหตุผลทางด้านการค้าหรือใด ๆ ตัวอย่างโปรแกรมที่ปิดโค้ดนี้ได้แก่ Windows , Word เป็นต้น ในขณะที่โปรแกรมที่เปิดโค้ด เป็นโปรแกรมที่เปิดโค้ดและการทำงานโปรแกรมให้ได้ดูกัน โปรแกรมที่เปิดโค้ดมีทั้งแบบฟรีและไม่ฟรี ได้แก่ แกนลินุกซ์ , Red Hat Linux เป็นต้น แต่ว่าโปรแกรมแบบไหนมีความปลอดภัยมากกว่าล่ะ ? โปรแกรมที่เปิดโค้ด มีข้อดีคือ เปิดการทำงานโปรแกรม ผู้ที่นำโปรแกรมไปใช้งานสามารถตรวจสอบโค้ดและปรับแต่งการทำงานให้เหมาะสมได้ และ เมื่อพบปัญหาด้านความปลอดภัย สามารถรายงานโดยตรงกับนักพัฒนาโปรแกรมนั้นได้ หากนักพัฒนาเลิกพัฒนาเวชั่น/โปรแกรม ก็ยังคงสามารถรับ path ความปลอดภัยจากชุมชนได้ เป็นต้น โปรแกรมที่ปิดโค้ด มีข้อดีคือ มีการทดสอบโปรแกรมและคอยออก Path แก้ไขข้อผิดพลาดจากโปรแกรมโดยตรงจากบริษัทที่พัฒนา มีค่าหัวให้กับแฮกเกอร์ที่หาช่องโหว่โปรแกรมและรายงานกลับไปได้ (โปรแกรมที่เปิดโค้ดบ