วิธีการปกป้อง source code นั้น หลักๆที่เป็นที่ยอดนิยมและได้ผลพอสมควรไปจนถึงได้ผลดีมาก มีอยู่ 3 วิธีด้วยกัน แต่ละวิธีก็มีข้อดีข้อเสียแตกต่างกันไป.
ปกป้องด้วยการ encode
วิธีนี้มีทั้งที่ฟรีและไม่ฟรี คือ ตั้งแต่ใช้วิธีการ base64_encode()
แล้วเอา string ที่ได้ไปใช้ในการ eval(base64_decode($string));
อีกทีหนึ่ง ซึ่งการย้อนกลับไปเป็นซอร์สโค้ดปกตินั้นก็ง่ายมาก วิธีนี้จึงเป็นการปกป้องแบบขั้นต่ำ แบบง่ายๆ
วิธีที่ไม่ฟรี ก็คือใช้บริการ encoder ต่างๆที่จะต้องติดตั้งตัว decoder ไว้ที่ server ด้วย บริการที่มีใช้ในวิธีเหล่านี้ เช่น Ioncube, PHP Shield, Zend Guard, Nu-Coder, Source guardian หรืออื่นๆ ซึ่งค่าบริการก็มีตั้งแต่การ encode เป็นไฟล์ ก็จะไม่แพง ไปจนถึงซื้อ software มาเพื่อทำการ encode ซึ่งก็จะจ่ายมากขึ้น แต่หากใช้มากๆก็ถือว่าคุ้มกว่าจ่ายแบบเป็นไฟล์.
ทั้งนี้ตัว encoder เหล่านี้ บางตัวก็โดนเจาะให้ทำการย้อนกลับเป็นซอร์สโค้ดปกติได้แบบง่ายๆแล้ว ดังนั้นหากเลือกใช้วิธีนี้จะต้องหมั่นอัพเดท encoder และตัว decoder บน server ด้วย
ระดับการปกป้อง 2/5
ค่าใช้จ่าย 1/5
ปกป้องด้วยการใช้ register key
วิธีการนี้ ค่อนข้างจะซับซ้อนนิดหน่อย คือก่อนการใช้งานแอพพลิเคชั่นที่ผู้ใช้ได้ไป ผู้ใช้จะต้องทำการลงทะเบียนโดยกรอก register key แล้วในการบวนการกรอกก็จะไปทำการตรวจความถูกต้องของ key ที่ฝั่ง server หากถูกต้องก็จะถือว่าลงทะเบียนแอพพลิเคชั่นนั้นผ่านแล้ว
และในขั้นตอนการทำงาน ก็จะต้องตั้งให้มีการตรวจ key ที่ลงทะเบียนแล้ว โดยความถี่อาจจะเป็นวันละครั้งเป็นอย่างน้อย ซึ่งการตรวจก็จะไปตรวจที่ฝั่ง server หาก key ถูกต้องกับที่ลงทะเบียนไว้แล้วก็ทำงานได้ หากไม่ถูกต้องก็ไม่ให้ทำงานต่อ.
สำหรับโค้ดของการทำงานบน server ของผู้ใช้นั้น ส่วนที่ตรวจสอบ key, ลงทะเบียน key อาจเขียนร่วมกับการทำงานอื่นๆแล้วทำการ encode เพิ่มเติม เพื่อปกป้องและป้องกันการลัดวงจรตัดส่วนลงทะเบียน key, ตรวจสอบ key ออกไป และการ encode นี้หากใช้บริการต่างๆเช่น Ioncube, Zend Guard หรืออื่นๆ ผู้พัฒนาจะต้องเสียเงินเพิ่มขึ้น
การปกป้องในรูปแบบนี้ ผู้พัฒนาจะต้องลงทุนในส่วนของ server ของตนที่จะต้องทำการรองรับ authenticate การลงทะเบียน key และการตรวจ key ซึ่ง server ดังกล่าวจะต้องมีเปอร์เซ็นต์ up time สูงกว่าทั่วไป เพราะหากเว็บไซต์ของผู้ใช้เรียกตรวจ key แล้วไม่พบ server ก็อาจทำให้เกิดความเสียหายได้
ระดับการปกป้อง 4/5
ค่าใช้จ่าย 3/5
ปกป้องด้วยการ host API
วิธีนี้คล้ายๆกับการปกป้องด้วยการใช้ register key กล่าวคือผู้พัฒนาเมื่อเขียนแอพพลิเคชั่นหนึ่ง ไม่จำเป็นต้องเขียนซอร์สโค้ดส่วนที่จะให้กับผู้ใช้ครบถ้วนทั้งหมด แต่ให้เว้นไว้บางส่วนที่สำคัญแล้วระบบทางฝั่งผู้ใช้ทำการเรียกใช้มายัง server ของผู้พัฒนา แล้วในกระบวนการขั้นตอนนี้เองก็จะทำการตรวจสอบ key และโดเมนว่าถูกต้องหรือไม่ หากถูกต้องก็ทำงานต่อไปตามปกติ
ตัวอย่างสำหรับการปกป้องกรณีนี้ เช่น ระบบความปลอดภัยของผู้ใช้ในการแจ้งเตือนการเข้าสู่ระบบทาง sms เมื่อผู้ใช้ระดับพิเศษ เช่น ผู้ดูแลเป็นต้น ทำการเข้าสู่ระบบสำเร็จ ให้แจ้งเตือน sms ไปยังเจ้าของผู้ดูแลคนนั้นๆ กระบวนการส่ง sms ก็ไม่ต้องเขียนไปให้ระบบของผู้ใช้ แต่ใช้วิธีการเรียกมายัง server ของผู้พัฒนาแทน ซึ่งผู้พัฒนาก็จะมีระบบส่ง sms นั้นอยู่และทำการตรวจ key กับโดเมนที่เรียกใช้ให้ถูกต้องก่อนทำการส่ง.
หรืออีกตัวอย่างหนึ่ง คือ ระบบฟอรั่มที่ใช้ markup พิเศษ ต่างจาก bb code ธรรมดาทั่วไป ในส่วนของกระบวนการแสดงผล แทนที่จะเขียนฟังก์ชั่นแปลง bb code พิเศษเหล่านั้นไปให้กับผู้ใช้ ก็ให้ทำการเรียกมายัง server ของผู้พัฒนา โดยส่งข้อความที่จะให้แปลง, api key แล้วทำการตรวจ key และโดเมนให้ตรงกันแล้วค่อยแปลง bb code พิเศษนั้นแล้วส่งกลับไปเป็น html.
วิธีการป้องกันแบบนี้ได้ผลดีเลิศ และผู้พัฒนาจะต้องมี server ที่รองรับการทำงานที่มีเปอร์เซ็นต์ up time มากกว่า server ทั่วไป เพื่อป้องกันความเสียหายเมื่อ server ผู้ใช้เรียกมาใช้งานไม่ได้. การป้องกันแบบนี้ไม่จำเป็นต้องทำการ encode ใดๆในซอร์สโค้ดของฝั่งผู้ใช้เลย เพราะหากผู้ใช้นั้นได้ซอร์สโค้ดไปอย่างไม่ถูกต้อง ระบบตรวจสอบฝั่ง server ของผู้พัฒนาก็เพียงแค่ส่งค่าการตรวจสอบล้มเหลวกลับไปเท่านั้นเอง.
ระดับการปกป้อง 5/5
ค่าใช้จ่าย 5/5
3 comments on “ปกป้อง Source code ของคุณด้วยวิธีต่างๆ”
ถ้าอยากย้อนกลับต้องทำไงคับ
แต่ละวิธีย้อนกลับไม่เหมือนกัน และการย้อนกลับโค้ดของผู้อื่นโดยไม่ได้รับอนุญาต เสี่ยงต่อการทำผิดกฏหมายครับ ต้องทดลองเอาเอง.
มีตัวไหนให้ใช้ฟรีบ้างไหมครับ