- อิทธิพลของ jQuery บนเว็บนั้นชัดเจน
- นับตั้งแต่เปิดตัวครั้งแรกในปี 2006 ก็กลายเป็นเครื่องมือพื้นฐานสำหรับนักพัฒนาเว็บแทบจะในทันที
- ช่วยทำให้การจัดการเอกสาร HTML, การจัดการอีเวนต์, แอนิเมชัน และอื่น ๆ ง่ายขึ้น
- มีบทบาทสำคัญอย่างต่อเนื่องต่อการพัฒนามาตรฐานเว็บและความสามารถของเบราว์เซอร์
- แม้การมาถึงของเฟรมเวิร์ก JavaScript สมัยใหม่จะทำให้นักพัฒนาที่เลือกใช้ jQuery ในโปรเจ็กต์ใหม่ลดลง แต่การใช้งานทั่วโลกยังคงสูงมาก
- จากการวิเคราะห์ผลสำรวจของ IDC พบว่า 90% ของเว็บไซต์ทั้งหมดใช้ jQuery
- ในจำนวนนั้นประมาณ 1/3 ใช้เวอร์ชันเก่า
- ทีม jQuery และมูลนิธิ OpenJS กำลังพยายามแก้ปัญหานี้ในฐานะส่วนหนึ่งของแคมเปญ Healthy Web checkup
- คู่มือนี้อธิบายว่าทำไมการรักษาเวอร์ชัน jQuery ให้ทันสมัยจึงสำคัญ และแนะนำกระบวนการอัปเกรด
ทำไมการอัปเกรด jQuery จึงสำคัญต่อความปลอดภัย
- ช่องโหว่ด้านความปลอดภัย
- ในโค้ดเบสของ jQuery อาจมีช่องโหว่ได้หลากหลาย ตั้งแต่ XSS ไปจนถึง RCE
- เมื่อพบปัญหา ทีม jQuery จะออกแพตช์และอัปเดตให้
- การอัปเกรดเป็นเวอร์ชันล่าสุดจะทำให้ได้รับการแก้ไขด้านความปลอดภัยเหล่านี้ และลดความเสี่ยงจากการถูกผู้โจมตีนำไปใช้ประโยชน์
- แนวปฏิบัติด้านความปลอดภัยที่ดี
- jQuery เวอร์ชันใหม่รวมแนวปฏิบัติและการปรับปรุงด้านความปลอดภัยเพื่อบรรเทาภัยคุกคามทั่วไป
- การอัปเกรดช่วยให้คุณนำแนวปฏิบัติเหล่านี้มาใช้และเสริมความแข็งแกร่งของสถานะความปลอดภัยของแอปพลิเคชันได้
- ข้อกำหนดด้านการปฏิบัติตามข้อบังคับ
- หลายอุตสาหกรรมและกรอบข้อกำกับกำหนดให้ต้องรักษาซอฟต์แวร์ให้ทันสมัยและแก้ไขช่องโหว่ด้านความปลอดภัยที่ทราบอย่างรวดเร็ว
- หากไม่อัปเกรด jQuery เพื่อแก้ปัญหาด้านความปลอดภัย อาจทำให้ไม่เป็นไปตามข้อกำหนดเหล่านี้
การรองรับเบราว์เซอร์
- jQuery 1.x, 2.x และ 3.x ต่างก็มีรายการเบราว์เซอร์ที่รองรับไม่เหมือนกัน
- อย่างไรก็ตาม เมื่อพิจารณาจากสัดส่วนการใช้งานในตลาดเบราว์เซอร์ปัจจุบัน เบราว์เซอร์ที่ jQuery 3.x รองรับ เช่น IE 9+ ก็เพียงพอสำหรับเกือบทุกกรณี
- jQuery 4.x มีแผนจะยังคงรองรับ IE11 ต่อไป แม้ MS จะประกาศยุติการสนับสนุนอย่างเป็นทางการแล้วก็ตาม
วิธีอัปเกรด jQuery
- ทีม jQuery มีปลั๊กอิน jQuery Migrate เพื่อทำให้การอัปเกรด jQuery ง่ายที่สุดเท่าที่เป็นไปได้
- เป็นเครื่องมือสำหรับนักพัฒนาที่สร้างข้อความเตือนในคอนโซลของเบราว์เซอร์ เพื่อนำไปใช้ระบุและแก้ไขปัญหาความเข้ากันได้
- ช่วยคืนค่าฟีเจอร์และพฤติกรรมที่เลิกใช้แล้วกลับมาชั่วคราว เพื่อให้โค้ดเก่ายังทำงานบน jQuery เวอร์ชันใหม่ได้ ขณะเดียวกันก็เปิดทางให้แก้ปัญหาความเข้ากันได้
- jQuery Migrate มีสองเวอร์ชันคือ 1.x และ 3.x (ไม่มี 2.x)
- ควรใช้ทีละหนึ่งเวอร์ชันเท่านั้น
- หากกำลังอัปเกรดจากเวอร์ชันก่อน jQuery 1.9 อาจจำเป็นต้องใช้ทั้งสองเวอร์ชันตามลำดับ
- ตัวอย่างเช่น หากเวอร์ชัน jQuery ปัจจุบันคือ 1.4.4
- ก่อนอื่นให้อัปเกรดเป็น jQuery 1.12.4 โดยใช้ jQuery Migrate 1.x แล้ว
- จากนั้นใช้งาน jQuery Migrate 3.x เพื่ออัปเกรดเป็น jQuery ล่าสุด (ณ ตอนนี้คือ 3.7.1)
- หากเวอร์ชันปัจจุบันคือ 2.2.4 สามารถใช้เพียง jQuery Migrate 3.x เพื่ออัปเกรดเป็น jQuery ล่าสุดได้
วิธีใช้ jQuery Migrate
- ก่อนอื่นให้เพิ่ม jQuery Migrate ลงในหน้าเว็บหลังจากโหลด jQuery แล้ว
- จากนั้นทดสอบเว็บไซต์หรือแอปพลิเคชัน
- เมื่อมีการใช้งาน jQuery API ที่แตกต่างกัน jQuery Migrate จะบันทึกข้อความเตือนเกี่ยวกับสิ่งที่เลิกใช้แล้วหรือการเปลี่ยนแปลงสำคัญไว้ในคอนโซล
- แก้ไขคำเตือนแต่ละรายการทีละรายการ
- สุดท้าย เมื่อไม่มีข้อความเตือนถูกบันทึกในคอนโซลอีกต่อไป และการเปลี่ยนแปลงสำคัญทั้งหมดได้รับการแก้ไขแล้ว ก็ให้นำ jQuery Migrate ออก ถือว่าการย้ายเวอร์ชันเสร็จสมบูรณ์
- ดูรายละเอียดเพิ่มเติมได้ใน README ของ jQuery Migrate
คู่มือการอัปเกรด jQuery
- jQuery Upgrade Guides อาจช่วยได้หากต้องการข้อมูลเชิงลึกเกี่ยวกับการเปลี่ยนแปลงสำคัญ หรืออยากดูรายการการเปลี่ยนแปลงสำคัญทั้งหมดของแต่ละเวอร์ชัน
- คู่มือการอัปเกรดสำหรับ jQuery 1.9, 3.0 และ 3.5 แสดงรายการการเปลี่ยนแปลงสำคัญทั้งหมดที่เกิดขึ้นในรีลีสนั้น ๆ
- แม้การเปลี่ยนแปลงสำคัญส่วนใหญ่ที่ระบุไว้อาจไม่ได้ส่งผลกับโค้ดของคุณ แต่คู่มือเหล่านี้ช่วยเพิ่มบริบทและคำอธิบายสำหรับแต่ละการเปลี่ยนแปลง
หมายเหตุเกี่ยวกับ jQuery เวอร์ชันในอนาคต
- เมื่อ jQuery 4.0 กำลังใกล้เข้ามา คุณอาจสงสัยว่ากระบวนการอัปเกรดไปยัง jQuery 4.x จะเป็นอย่างไร
- คำตอบคือเหมือนกับการอัปเกรดไปยัง jQuery 3.x และสามารถทำได้ในขั้นตอนเดียว
- กล่าวคือ ไม่จำเป็นต้องอัปเกรดเป็น jQuery 3.x ก่อนจะอัปเกรดเป็น jQuery 4.x
- สามารถอัปเกรดจาก jQuery 1.9+ ไปยัง jQuery 4.x ได้โดยตรง
- จะมีการจัดทำคู่มือการอัปเกรดสำหรับ jQuery 4.0 ด้วย
ความเห็นจาก GN⁺
- เนื่องจาก jQuery ยังถูกใช้งานอย่างมากในเว็บไซต์จำนวนมาก การอัปเกรดเวอร์ชันจึงเป็นโจทย์สำคัญสำหรับนักพัฒนาเว็บ
- หากยังคงใช้เวอร์ชันเก่าต่อไป อาจเผชิญกับช่องโหว่ที่เพิ่งถูกค้นพบโดยตรง และยังอาจเกิดปัญหาด้านประสิทธิภาพได้
- อย่างไรก็ตาม สำหรับระบบ legacy ที่ใช้ jQuery เวอร์ชันเก่า การอัปเกรดอาจต้องใช้ทั้งเวลาและต้นทุนค่อนข้างมาก
- ในกรณีเช่นนี้ การลดความเสี่ยงด้วยวิธีอย่างการใช้เฉพาะแพตช์ด้านความปลอดภัยก็อาจเป็นทางเลือกหนึ่ง
- แม้จะอัปเกรดได้ง่ายด้วยปลั๊กอิน Migrate และเครื่องมืออื่น ๆ แต่ก็ยังมีโอกาสเกิดปัญหาความเข้ากันได้
- โดยเฉพาะอย่างยิ่งหากเป็นโค้ด legacy ที่พึ่งพา jQuery อย่างมาก
- การแก้ปัญหานี้จำเป็นต้องใช้การย้ายระบบแบบค่อยเป็นค่อยไป
- หากเป็นโปรเจ็กต์ใหม่ การออกแบบให้ไม่ต้องพึ่งพา jQuery ตั้งแต่แรกอาจเป็นทางเลือกที่ได้เปรียบกว่า
- การใช้ Vanilla JS หรือเฟรมเวิร์กฟรอนต์เอนด์สมัยใหม่เป็นแนวทางที่มองไปข้างหน้ามากกว่า
- สำหรับนักพัฒนาที่เคยใช้ jQuery มาก่อน นี่อาจเป็นโอกาสดีในการลองเทคโนโลยีใหม่ ๆ ซึ่งจะช่วยขยายขีดความสามารถของตนเองได้
3 ความคิดเห็น
หากไม่อัปเกรด jQuery และไม่แก้ไขปัญหาด้านความปลอดภัย
--> หากไม่อัปเกรด jQuery หรือไม่แก้ไขปัญหาด้านความปลอดภัย