PlusMagi's Blog By Pitt Phunsanit WordPress WordPress: Pingback สามารถปิดใน config ได้ ทำไม่ต้องเพิ่ม code?

WordPress: Pingback สามารถปิดใน config ได้ ทำไม่ต้องเพิ่ม code?

การตั้งค่าในหน้า Settings > Discussion (หรือการกำหนดผ่าน Database Option) กับการเพิ่มโค้ด จัดการปัญหาคนละจุดกันอย่างสิ้นเชิง


ความแตกต่างของกลไกการทำงาน

จุดประสงค์ตั้งค่าใน Admin / Configเพิ่มโค้ด (Hook pre_ping)
หน้าที่จัดการ “ขาเข้า” (Inbound)จัดการ “ขาออก” (Outbound)
สิ่งที่ทำกำหนดว่าบล็อกของเราจะ ยอมรับ Pingback จากเว็บอื่นหรือไม่คัดกรองรายการลิงก์ในบทความ ก่อนส่งคำขอออกไป
ระดับการคุมเป็นแค่การตั้งค่า Flag ในระดับบทความแทรกแซง Workflow การประมวลผลของ WordPress Core

ช่องโหว่ของการปิดผ่าน Config เพียงอย่างเดียว

การเอาติ๊กถูกออกที่ “Allow link notifications from other blogs (pingbacks and trackbacks) on new posts” มีข้อจำกัด 3 เรื่อง

  1. มีผลเฉพาะบทความใหม่
    การแก้ใน Settings จะเปลี่ยนเฉพาะค่าเริ่มต้นของบทความที่จะเขียนหลังจากนั้น บทความเก่าที่มีอยู่แล้วยังคงเปิดรับ Pingback อยู่เหมือนเดิม (ต้องไปไล่แก้ทีละโพสต์หรือ Bulk Edit)
  2. ระบบยังคง “ส่งออก” ไปข้างนอกอยู่ดี
    ตัวเลือก “Attempt to notify any blogs linked to…” แม้จะปิดไว้ แต่หากคุณลิงก์ไปยังเว็บอื่นหรือเว็บย่อยในเครือข่าย ในหลายเวอร์ชันกระบวนการตรวจจับ URL ภายในเนื้อหาก็ยังถูก Parse อยู่เบื้องหลัง
  3. โดเมนย่อยและ Redirect (เช่น plusmagi.com -> pitt.plusmagi.com)
    หากคุณเขียนบทความบน pitt.plusmagi.com แล้วทำลิงก์เก่าที่เป็น plusmagi.com หรือ [www.plusmagi.com](https://www.plusmagi.com) WordPress จะไม่ถือว่าเป็นโดเมนเดียวกัน และจะยังพยายามยิง HTTP Request ออกไปหาปลายทางตามปกติ

เหตุผลที่ต้องใช้โค้ด (หรือปิดที่ Web Server / XML-RPC)

  1. หยุดกระบวนการตั้งแต่ต้นทาง (Zero Overhead)
    การใช้ Hook pre_ping จะไปตัด URL ของเครือข่ายตัวเองออกจาก Array คิวก่อนที่ WordPress จะเริ่มสร้าง HTTP Request ทำให้เซิร์ฟเวอร์ไม่ต้องเสีย Thread, เวลา หรือ Connection ไปเชื่อมต่อกับตัวเอง
  2. แก้ปัญหาแบบเด็ดขาด ไม่ขึ้นกับสถานะของบทความ
    ไม่ว่าบทความนั้นจะถูกเปิดหรือปิดสถานะ Pings ไว้ โค้ดระดับนี้จะบังคับควบคุมทราฟฟิกขาออกเสมอ
  3. ป้องกันระดับเซิร์ฟเวอร์
    หากปิดที่ Nginx (location = /xmlrpc.php { return 444; }) ไปแล้ว WordPress ในเครื่องที่พยายามส่ง Pingback หาตัวเองจะเจอตอ (Connection Dropped) และอาจเกิด Error Log หรือ Timeout ค้างในคิว Background Task การใส่ Hook ฝั่ง PHP จึงเป็นการตัดวงจรอย่างสมบูรณ์แบบทั้งขาเข้าและขาออก

อ่านเพิ่มเติม

Exit mobile version