ตั๋ว WordPress #30465 เปิดเมื่อ 10 ปีที่แล้ว – ปี 2025 จะเป็นปีที่ได้รับการแก้ไขในที่สุดหรือไม่?

เผยแพร่แล้ว: 2025-01-03

ย้อนกลับไปในเดือนพฤศจิกายน 2014 นักพัฒนา WordPress ชื่อ Sergej Mueller ได้กล่าวถึงสิ่งที่ดูเหมือนเป็นข้อกังวลที่สมเหตุสมผล: ผู้ใช้ไม่มีทางรู้ได้เลยว่าปลั๊กอินที่ใช้อยู่นั้นถูกลบออกจากที่เก็บอย่างเป็นทางการหรือไม่ แม้ว่าจะถูกลบออกด้วยเหตุผลด้านความปลอดภัยก็ตาม ตั๋วของเขา – อย่างเป็นทางการ #30465 – ถูกปิดหลังจากนั้นไม่นาน แต่ไม่มีข้อยุติ Sergej ไม่รู้เลยว่าจะมีการเปิดอีกครั้งในอีกเกือบ สิบปีให้หลัง

และนี่คือช่วงต้นปี 2025 ที่ฉันเขียนอัปเดตเกี่ยวกับเรื่องนี้

ทำไม

ด้วยเหตุผลบางประการ

ประการแรก มีความเกี่ยวข้องอย่างมากกับเหตุการณ์ความปลอดภัยของปลั๊กอินที่เกิดขึ้นเมื่อเร็ว ๆ นี้ – เมื่อเดือนตุลาคมของปีที่แล้ว ฉันจะพูดถึงสิ่งเหล่านั้นในไม่ช้า และประการที่สอง ความตั้งใจและโมเมนตัมในการแก้ไขปัญหาได้เพิ่มความเข้มข้นขึ้นอย่างมาก กิจกรรมล่าสุดบนตั๋วเมื่อไม่ถึงหนึ่งเดือนที่ผ่านมา:

ตั๋ว WordPress 30465

ดูเหมือนว่าความอดทนของ Sergej อาจจะหมดลงในเร็วๆ นี้...

เริ่มต้นด้วยการย้อนรอยการพัฒนาตั๋ว จากนั้น เราจะมาดูสิ่งที่เกิดขึ้นในช่วงไม่กี่สัปดาห์ที่ผ่านมา:

ในที่สุดตั๋ว #WordPress อายุ 10 ปีจะได้รับการแก้ไขในปี 2568 หรือไม่
คลิกเพื่อทวีต

จาก “จะไม่แก้ไข” สู่การขึ้นเวที WCEU 2023 🙅‍♂️

เมื่อเปิดตั๋วครั้งแรก ก็ได้รับการตอบกลับเล็กน้อย แต่ถูกปิดตัวลงอย่างรวดเร็วโดย Andrew Nacin หัวหน้านักพัฒนา WordPress เขาปิดมันและทำเครื่องหมายว่า “จะไม่แก้ไข” โดยอธิบายว่าการลบปลั๊กอินเกิดขึ้นจากหลายสาเหตุ ไม่ใช่แค่ปัญหาด้านความปลอดภัยเท่านั้น:

หลังจากนั้นก็มีการวิจารณ์กันมากมาย แต่แล้วมันก็หายไปเป็นความคิดเห็น ปีละครั้ง (บางครั้งก็น้อยกว่านั้นด้วยซ้ำ) ของใครบางคนที่พยายามจะรื้อฟื้นปัญหานี้

จากนั้นใน เดือนมีนาคม 2566 ก็มีเรื่องน่าสนใจเกิดขึ้น Joost de Valk บุคคลที่มีชื่อเสียงในชุมชน WordPress ได้เปิดตั๋วอีกครั้งอย่างเป็นทางการ ข้อโต้แย้งของเขาคือ WordPress มีความรับผิดชอบในการบอกผู้ใช้ว่าปลั๊กอินนั้นได้รับการบำรุงรักษาหรือไม่

นอกจากนี้เขายังชี้ให้เห็นว่า WordPress.org ได้แสดงข้อมูลนี้บนแพลตฟอร์มแล้ว แต่หลังจากช่วงรอ 60 วันเท่านั้น ข้อเสนอแนะของเขาคือนำความโปร่งใสแบบเดียวกันนี้มาสู่แบ็กเอนด์ WordPress ซึ่งผู้ใช้จัดการปลั๊กอินของตนได้จริง

นั่นทำให้เกิด ความกระตือรือร้นระลอกใหม่ ทั่วทั้งเส้นด้าย ตั๋วดังกล่าวได้รับความนิยมอย่างมาก จน Oliver Sild ซึ่งเป็น CEO และผู้ร่วมก่อตั้ง Patchstack ถึงกับกล่าวถึงมันในสุนทรพจน์ WCEU 2023 ของเขา:

Oliver จาก Patchstack กล่าวถึงตั๋ว WordPress 30465 ในสุนทรพจน์ WCEU 2023 ของเขา

เขาไม่เพียงแต่พูดถึงเรื่องนี้เท่านั้น แต่เขายังสนับสนุนให้ผู้เข้าร่วม WCEU แสดงความคิดเห็นในเธรดโดยใช้โค้ด QR แบบกำหนดเองที่เขาเพิ่มในการนำเสนอของเขา นอกจากนี้เขายังใช้ปลั๊กนี้เป็นตรอกล่าช้าสำหรับการแข่งขันที่ Patchstack จะเป็นเจ้าภาพในปีต่อไป

กิจกรรมเดือนตุลาคม 2024 ของ Patchstack 🪲

ในเดือนตุลาคม 2024 Patchstack ได้เปิดตัวกิจกรรม Bug Bounty ซึ่งเป็นส่วนหนึ่งของเดือนแห่งความปลอดภัยทางไซเบอร์ หาก Oliver กล่าวถึงตั๋ว #30465 ในสุนทรพจน์ WCEU ของเขาเป็นเรื่องไร้สาระ ผลลัพธ์ของเหตุการณ์นี้คงเป็นสแลมดังค์

นักวิจัยด้านความปลอดภัยที่เข้าร่วมในงานนี้ พบว่ามีรายงานช่องโหว่ด้านความปลอดภัยที่ถูกต้องถึง 1,571 รายการในเดือนเดียว สิ่งเหล่านี้ไม่ใช่เพียงปัญหาเล็กๆ น้อยๆ เช่นกัน เรากำลังพูดถึง:

  • 73 กรณีที่ผู้โจมตีสามารถอัปโหลดไฟล์ที่เป็นอันตราย
  • 67 ช่องโหว่การฉีด SQL ที่อาจทำให้ฐานข้อมูลทั้งหมดเสียหาย
  • 58 วิธีสำหรับผู้โจมตีในการเพิ่มสิทธิพิเศษ
  • ช่องโหว่การเรียกใช้โค้ดจากระยะไกล 17 รายการ (ใช่แล้ว!)

ผลที่ตามมาส่งผลให้มีปลั๊กอินเกือบ 1,000 รายการปิดชั่วคราว และเมื่อ Patchstack พยายามติดต่อนักพัฒนาปลั๊กอินเกี่ยวกับปัญหาเหล่านี้ เกือบ 74% ไม่สามารถเข้าถึงได้โดยสิ้นเชิง แบบฟอร์มติดต่อของพวกเขาเสียหาย อีเมลถูกตีกลับ หรือโดเมนหมดอายุ

ข้อดีก็คือปลั๊กอินที่มีช่องโหว่เหล่านี้จำนวนมากอยู่ในพื้นที่เก็บข้อมูลมาเป็นเวลา 6-11 ปีแล้ว บางอันมีอายุย้อนกลับไปถึง 17 ปี! ใช่แล้ว ยังมีเว็บไซต์ที่ใช้งานอยู่อยู่ ขึ้นอยู่กับปลั๊กอินเหล่านี้

ไม่ต้องพูดอะไรเลย ข้อมูลทั้งหมดนี้ทำให้ Oliver ใช้ประโยชน์จากเธรดเพื่อผลักดันตั๋ว #30465 ไปข้างหน้าจนเสร็จสมบูรณ์ เขาใช้ประโยชน์จากมันอย่างมีความสุข และโพสต์รายละเอียดบางส่วนเมื่อสองสัปดาห์ก่อนที่จะมีการเผยแพร่โพสต์บล็อกอย่างเป็นทางการของ Patchstack ที่กล่าวถึงกิจกรรมนี้:

Oliver Sild ใช้ข้อมูลเพื่อสร้างกรณีที่ชัดเจนในการย้ายตั๋ว WordPress 30465 ไปจนเสร็จสิ้น

จากการสนทนาไปสู่การปฏิบัติ 🛠️

กิจกรรมในชุดข้อความนี้เพิ่มขึ้นอย่างรวดเร็วเมื่อ Oliver เพิ่มความคิดเห็น ดังนั้นการประเมินผลกระทบต่อแต่ละคนจึงเป็นเรื่องยาก อย่างไรก็ตาม ไม่ใช่เรื่องที่ไม่สมเหตุสมผลที่จะสันนิษฐานว่ามันได้เติมเชื้อเพลิงให้กับเปลวไฟที่กำลังลุกลาม โดยเฉพาะอย่างยิ่งกับผู้ใช้รายอื่น (ซึ่งอย่างน้อยหนึ่งคนเป็นพนักงาน Patchstack) ที่สนับสนุนความคิดเห็นของเขาอย่างเปิดเผย

เพื่อเป็นการตอบสนอง Dion Hulse (@dd32) หัวหน้านักพัฒนา WordPress ได้ตอบโต้ในหลายประเด็น แต่ก็ก้าวขึ้นมาอย่างมากด้วยการสร้างปลั๊กอินทดลองที่ใช้ฟีเจอร์ที่รอคอยมานาน:

การรวม UI ที่เสนอของตั๋ว WordPress หมายเลข 30465

การใช้งานนั้นเรียบง่ายสวยงาม – เมื่อปลั๊กอินถูกปิดในพื้นที่เก็บข้อมูล WordPress.org ผู้ใช้จะเห็นการแจ้งเตือนที่ชัดเจนแต่วัดผลได้ ไม่มีการแจ้งเตือนสีแดงที่ทำให้เกิดความตื่นตระหนก มีเพียงข้อมูลที่ตรงไปตรงมาเกี่ยวกับสถานะของปลั๊กอิน

มีคนพบ Sergej และบอกเขาว่า "แม่เราทำสำเร็จแล้ว!"

ก็…เกือบแล้ว

ยังไม่ได้เป็นส่วนหนึ่งของ WordPress core แต่ฉันรู้สึกว่าเราใกล้จะถึงเส้นชัยแล้ว!

เมื่อแสดงให้เห็นแล้วว่าเป็นไปได้แล้ว ขั้นตอนต่อไปคือการตัดสินใจในการใช้งานขั้นสุดท้าย จากนั้นจึงสามารถรวมเข้ากับแกน WordPress ได้

อะไรต่อไป?

ในขณะที่เขียนบทความนี้ คุณลักษณะนี้อยู่ระหว่างการพิจารณาเพื่อรวมไว้ใน WordPress 6.8 (ตาม Dion Hulse) แม้ว่าจะยังมีอุปสรรคบางประการที่ต้องเคลียร์ก็ตาม ซึ่งรวมถึง:

  • การสิ้นสุดระยะเวลาการแจ้งเตือน (มีการพูดคุยกันเกี่ยวกับการขยายกรอบเวลา 60 วัน)
  • จัดทำเอกสารเหตุผลการปิดบัญชีให้เป็นมาตรฐาน
  • สร้างสมดุลระหว่างการรับรู้ของผู้ใช้กับภาระการสนับสนุนของนักพัฒนา
  • การตัดสินใจเกี่ยวกับตำแหน่งที่แน่นอน (หน้าจอสถานภาพของไซต์เทียบกับปลั๊กอินโดยตรงดังที่แสดงในภาพหน้าจอตัวอย่างปลั๊กอิน)

ภาพใหญ่ 🌐

วิวัฒนาการของตั๋ว WordPress #30465 บอกเราถึงสิ่งที่น่าสนใจเกี่ยวกับการเปลี่ยนแปลงความปลอดภัยของ WordPress ในทศวรรษที่ผ่านมา สิ่งที่ครั้งหนึ่งเคยถูกละเลยในฐานะ Edge Case มีความสำคัญมากขึ้นเรื่อยๆ เมื่อระบบนิเวศเติบโตขึ้น และความท้าทายด้านความปลอดภัยก็ทวีคูณมากขึ้น

แม้ว่าจะใช้เวลาสิบปีกว่าจะมาถึงจุดนี้ แต่ปลั๊กอินรุ่นทดลองแนะนำว่าในที่สุดเราก็เข้าใกล้โซลูชันที่สร้างสมดุลระหว่างการรับรู้ด้านความปลอดภัยกับประสบการณ์ของผู้ใช้ ด้วยการติดตั้ง WordPress หลายล้านครั้งที่อาจได้รับผลกระทบจากปลั๊กอินที่มีช่องโหว่ ฟีเจอร์นี้จึงมาได้เร็วไม่พอ

หากคุณต้องการติดตามการพัฒนา ลองดูปลั๊กอินทดลองบน GitHub หรือจับตาดูตั๋ว #30465 นี่อาจเป็นหนึ่งในช่วงเวลาที่หายากที่เราจะได้เห็นการสนทนาที่ยืดเยื้อมานานนับทศวรรษกลายเป็นผลลัพธ์ที่จับต้องได้

คุณคิดอย่างไรเกี่ยวกับคุณสมบัตินี้? คุณคิดว่ามันจะเป็นประโยชน์กับคุณในฐานะผู้ใช้ WordPress หรือไม่หากได้รับแจ้งว่าปลั๊กอินถูกปิด เพราะเหตุใด แจ้งให้เราทราบในความคิดเห็น ฉันจะพบคุณที่นั่น

เย้! คุณมาถึงจุดสิ้นสุดของบทความแล้ว!