ทำให้โค๊ดของผมขึ้นเตือน ดังนี้
This CKEditor 4.7.3 version is not secure. Consider upgrading to the latest one, 4.25.1-lts.
ต้องเอาอะไรใส่แทน ที่ไหน ในโค๊ดเดิม?
ตอบ
ข้อความเตือนนั้นระบุว่า CKEditor เวอร์ชัน 4.7.3 ของคุณไม่ปลอดภัย และแนะนำให้อัปเกรดเป็นเวอร์ชันล่าสุดคือ 4.25.1-lts
สิ่งที่ควรทำหลัก ๆ คือการ อัปเกรด (Upgrade) ตัว CKEditor ไม่ใช่แค่เปลี่ยนโค้ดเล็กน้อย เพราะเวอร์ชัน 4.25.1−lts เป็นเวอร์ชันที่ได้รับการแก้ไขช่องโหว่ความปลอดภัยแล้ว ซึ่งหมายถึงการเปลี่ยนไฟล์หลักของ CKEditor ทั้งหมด
1. วิธีที่แนะนำ: การอัปเกรด CKEditor
วิธีที่ถูกต้องและปลอดภัยที่สุดคือการอัปเกรดโดยการแทนที่ไฟล์เก่าด้วยไฟล์เวอร์ชันใหม่ทั้งหมด:
- สำรองข้อมูล (Backup): ให้เปลี่ยนชื่อโฟลเดอร์ CKEditor เดิมของคุณ (เช่น
ckeditor/) เป็นชื่ออื่นก่อน (เช่นckeditor_old/) เพื่อสำรองไว้ - ดาวน์โหลดเวอร์ชันล่าสุด: ไปที่เว็บไซต์ทางการของ CKEditor 4 และดาวน์โหลดแพ็กเกจเวอร์ชัน 4.25.1-lts (หรือเวอร์ชันล่าสุดที่เป็น LTS – Long Term Support) ที่คุณใช้ (เช่น Standard หรือ Full)
- ข้อควรระวังสำคัญ: เวอร์ชัน LTS (เช่น 4.25.1-lts) เป็นส่วนหนึ่งของ Extended Support Model (ESM) ซึ่งปกติแล้วจะ มีค่าใช้จ่าย และมีไว้สำหรับผู้ที่ไม่สามารถย้ายไป CKEditor 5 ได้ทันที
- หากคุณใช้งานแบบ Open Source (ไม่เสียค่าใช้จ่าย) และยังไม่ต้องการจ่ายค่า ESM คุณควรพิจารณาอัปเกรดไปเป็นเวอร์ชัน 4.24.0 (หรือ 4.22.1) ซึ่งเป็นเวอร์ชันสุดท้ายที่ปล่อยออกมาภายใต้สัญญาอนุญาตเดิม และ ปิดการแจ้งเตือน (Warning) ตามวิธีที่ 2 (แต่โปรดทราบว่าอาจมีช่องโหว่ด้านความปลอดภัยที่ถูกพบหลังจากเวอร์ชันนี้)
- แตกไฟล์ (Extract): แตกไฟล์ที่ดาวน์โหลดมาใหม่ลงในตำแหน่งเดิม (เช่น สร้างโฟลเดอร์
ckeditor/ใหม่) - คัดลอกไฟล์ตั้งค่า (Configuration): คัดลอกไฟล์การตั้งค่าที่คุณได้ปรับเปลี่ยนเอง (ถ้ามี) จากโฟลเดอร์สำรอง (
ckeditor_old/) ไปยังโฟลเดอร์ใหม่ (ckeditor/) ไฟล์ที่พบบ่อยได้แก่:config.jscontents.cssstyles.js- ปลั๊กอิน (Plugins) หรือธีม (Themes) ที่เพิ่มเข้ามาเอง
เมื่อทำตามขั้นตอนเหล่านี้ คุณก็จะใช้ CKEditor เวอร์ชันที่ปลอดภัยและไม่ต้องเปลี่ยนโค้ดสำหรับเรียกใช้ (Script Tag) ส่วนใหญ่:
HTML
<script src="path/to/ckeditor/ckeditor.js"></script>
<script>
CKEDITOR.replace( 'editor1' );
</script>
2. วิธีทางเลือก: ปิดการแจ้งเตือน (ถ้าไม่สามารถอัปเกรด LTS ได้)
หากคุณ ไม่สามารถอัปเกรด ไปยังเวอร์ชัน 4.25.1−lts ที่เป็น LTS/มีค่าใช้จ่าย ได้ในทันที และเลือกที่จะใช้เวอร์ชันสุดท้ายแบบ Open Source (เช่น 4.24.0 หรือ 4.22.1) แต่ต้องการ ปิด ข้อความเตือนความไม่ปลอดภัย คุณสามารถเพิ่มการตั้งค่าในไฟล์ config.js หรือในโค้ดที่คุณใช้เรียกใช้งาน CKEditor ดังนี้:
2.1. การตั้งค่าใน config.js (แนะนำกว่า)
ให้เพิ่มโค้ดบรรทัดนี้ลงในไฟล์ ckeditor/config.js ของคุณ:
JavaScript
CKEDITOR.editorConfig = function( config ) {
// ... การตั้งค่าอื่น ๆ ของคุณ
// บรรทัดนี้จะปิดการตรวจสอบและแสดงข้อความเตือนเวอร์ชันที่ไม่ปลอดภัย
config.versionCheck = false;
// ...
};
2.2. การตั้งค่าในการเรียกใช้ CKEDITOR.replace()
หรืออีกวิธีคือการส่งเป็นพารามิเตอร์เมื่อเรียกใช้ CKEDITOR.replace():
JavaScript
CKEDITOR.replace( 'editor1', {
// บรรทัดนี้จะปิดการตรวจสอบและแสดงข้อความเตือนเวอร์ชันที่ไม่ปลอดภัย
versionCheck: false
});
⚠️ คำเตือนสำคัญ: การใช้วิธีที่ 2 เป็นเพียงการ ซ่อนข้อความเตือน เท่านั้น ไม่ได้แก้ไขปัญหาด้านความปลอดภัย ที่มีอยู่ใน CKEditor เวอร์ชัน 4.7.3 (หรือต่ำกว่าเวอร์ชันที่ได้รับการแก้ไข) คุณควรใช้แค่เพียงชั่วคราวเท่านั้น และวางแผนที่จะอัปเกรดหรือย้ายไปใช้ CKEditor 5 ในเร็ววัน
วิธีที่ง่ายที่สุด เปลี่ยนบรรทัดเดิมเป็นอันนี้ และ ปิดการแจ้งเตือน
แก้ตรงนี้
<script src="https://cdn.ckeditor.com/4.22.1/standard-all/ckeditor.js"></script>
แก้ตรงนี้
<script>
CKEDITOR.replace( 'editor1', {
width: '100%',
height: 390,
// เพิ่มบรรทัดนี้เพื่อปิดการตรวจสอบเวอร์ชัน
versionCheck: false
} );
</script>
การใช้เวอร์ชัน 4.22.1 ร่วมกับการปิด versionCheck เป็นวิธีแก้ปัญหาในระยะสั้นที่ทำให้คุณใช้เวอร์ชันที่มีช่องโหว่น้อยกว่า 4.7.3 แต่ CKEditor 4 เวอร์ชัน Open Source ก็ไม่มีการอัปเดตด้านความปลอดภัยอีกต่อไป (สิ้นสุด EOL ในเดือนมิถุนายน 2023) หากคุณต้องการความปลอดภัยสูงสุดในระยะยาว คุณควรวางแผนที่จะย้ายไปใช้ CKEditor 5 หรือ CKEditor 4 LTS (Extended Support Model)