Secure Coding คือ แนวทางการพัฒนาซอฟต์แวร์ที่มีความทนทานต่อการถูกโจมตีจากผู้ไม่ประสงค์ดี โดยซอฟต์แวร์ที่พัฒนาขึ้นนั้นจะได้รับการออกแบบ และ พัฒนา รวมทั้งตรวจสอบแล้วว่าจะไม่สามารถถูกโจมตี หรือ ถูกเจาะด้วยเครื่องมือหรือภัยคุกคามที่เป็นที่รู้จักได้ง่าย
โดยทั่วไปแล้วโปรแกรมที่ไม่มีความมั่นคงปลอดภัยนั้นสามารถถูกเจาะได้ด้วยหลากหลายวิธีการ ซึ่งโดยทั่วไปแล้วทุกวิธีการนั้นมีจุดประสงค์เพื่อยึดเซิร์ฟเวอร์หรือไคลเอนท์ ตัวอย่างของการเจาะระบบผ่านทางช่องโหว่ของแอพพลิเคชันต่าง ๆ ได้แก่ การปฏิเสธการให้บริการ (Denial of Service) การปลอดตัวเป็นผู้อื่น การปล่อยมัลแวร์ (Malware) เพื่อเจาะเข้าระบบ เป็นต้น
ซึ่งการเรียนรู้ทางด้าน Secure Coding สามารถช่วยปกป้องแอพพลิเคชันรวมไปถึงข้อมูลลับของเราจากการถูกขโมยหรือความเสียหายได้
การพัฒนาแอปพลิเคชันให้ปลอดภัยไม่ใช่เพียงแค่การเพิ่มฟีเจอร์ด้าน Security หลังจากที่พัฒนาแอปพลิเคชันเสร็จ แต่จำเป็นต้องพิจารณาตั้งแต่การออกแบบและเขียนโค้ด (Secure Coding) ซึ่ง OWASP Proactive Control เป็นมาตรการควบคุมที่สำคัญที่นักพัฒนาควรใช้เป็นแนวทางในการออกแบบและเขียนโค้ดอย่างปลอดภัย
OWASP Proactive Control ประกอบด้วยเทคนิคและแนวคิดในการเขียนโค้ดอย่างปลอดภัยจำนวน 10 ข้อ เรียงลำดับตามความสำคัญ โดยลำดับที่ 1 มีความสำคัญสูงสุด ดังนี้
- ทำการตรวจสอบและยืนยันความปลอดภัยตั้งแต่เริ่ม และทำให้บ่อย
- ทำ Query Parameterization เพื่อป้องกันการโจมตีแบบ SQL Injection
- Encode ข้อมูล
- ตรวจสอบการป้อนข้อมูล เช่น ประเภท ความยาว รูปแบบ
- มีการพิสูจน์และยืนยันตัวตน
- มีการควบคุมสิทธิ์ในการเข้าถึง
- ปกป้องข้อมูลทั้งขณะรับส่งและจัดเก็บ
- วางระบบ Logging และ Intrusion Detection
- นำ Framework และ Library ด้านความปลอดภัยมาใช้งาน
- มีการจัดการกับ Error และ Exception
สำหรับใครที่สนใจอยากจะศึกษาข้อมูลเพิ่มเติมได้ที่ OWASP ได้เลย