วิธีปิดการใช้งาน XML-RPC ใน WordPress?

เผยแพร่แล้ว: 2022-09-19

คุณค้นหาเกี่ยวกับไฟล์ xmlrpc.php และวิธีปิดการใช้งานใน WordPress หรือไม่? บทความนี้จะอธิบายว่า xmlrpc.php คืออะไร และคุณจะปิดการใช้งานได้อย่างไร

การสื่อสารกับ WordPress จากแอปพลิเคชันภายนอกสภาพแวดล้อม WordPress ผ่านข้อกำหนด XML-RPC ทำได้โดยการสร้างมาตรฐานวิธีการสื่อสารระหว่างระบบ

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

อย่างไรก็ตาม xmlrpc.php มีข้อเสียบางประการเช่นกัน WP REST API ได้กลายเป็นองค์ประกอบสำคัญของ WordPress เนื่องจากมีการค้นพบช่องโหว่ของไฟล์ xmlrpc.php สิ่งนี้ช่วยปรับปรุงวิธีที่ WordPress โต้ตอบกับโปรแกรมซอฟต์แวร์อื่นๆ ได้อย่างมาก

บทความนี้มีจุดประสงค์เพื่ออธิบายว่า xmlrpc.php คืออะไร เหตุใดจึงควรปิดการใช้งาน และคุณจะปิดการใช้งานได้อย่างไร

เราขอแนะนำให้คุณตรวจสอบบทความของเราเกี่ยวกับปลั๊กอินความปลอดภัย WordPress ที่ดีที่สุด

ไฟล์ xmlrpc.php คืออะไร?

จุดมุ่งหมายของส่วนนี้คือการตอบคำถาม XML-RPC PHP คืออะไร? ข้อกำหนด XML-RPC สามารถใช้ในการสื่อสารระหว่าง WordPress และระบบอื่นๆ

การใช้ HTTP เป็นโปรโตคอลการขนส่งและ XML เป็นโปรโตคอลการเข้ารหัส XML-RPC สามารถสร้างมาตรฐานโปรโตคอลที่ใช้ในการสื่อสารเหล่านี้ได้

WordPress ถูกแยกออกจากซอฟต์แวร์บล็อก b2 ในปี 2546 ซึ่งใช้ XML-RPC เป็นอินเทอร์เฟซ ไฟล์ชื่อ xmlrpc.php อยู่ในไดเร็กทอรีรากของระบบและมีโค้ดสำหรับคุณลักษณะนี้ ไฟล์นี้ยังคงใช้งานได้แม้ว่า XML-RPC จะล้าสมัยเป็นส่วนใหญ่

เป็นการตั้งค่าเริ่มต้นใน WordPress เวอร์ชันแรกๆ เพื่อปิดใช้งาน XML-RPC ตั้งแต่เวอร์ชัน 3.5 มีการเปิดใช้งานโดยค่าเริ่มต้นเพื่อรองรับการสื่อสารระหว่างแอป WordPress สำหรับอุปกรณ์เคลื่อนที่และการติดตั้ง WordPress ของคุณ

ก่อน WordPress เวอร์ชัน 3.5 แอปมือถือ WordPress สามารถโพสต์เนื้อหาได้ก็ต่อเมื่อไซต์ของคุณได้รับการกำหนดค่าด้วย XML-RPC สาเหตุนี้เกิดจากการที่แอพไม่ได้ใช้งาน WordPress; แทนที่จะสื่อสารกับไซต์ WordPress ของคุณโดยใช้ xmlrpc.php

นอกจากนี้ XML-RPC ยังใช้ในการสื่อสารระหว่าง WordPress กับแพลตฟอร์มบล็อกอื่นๆ และระหว่าง WordPress และแอพมือถือ WordPress

XML-RPC สามารถใช้สำหรับ pingbacks และ trackbacks นอกจากนี้ยังทำหน้าที่เป็นแบ็กเอนด์สำหรับปลั๊กอิน Jetpack ซึ่งทำให้ไซต์ WordPress ที่โฮสต์ด้วยตนเองกลายเป็นสมาชิกของ WordPress.com

เนื่องจากตอนนี้ REST API ถูกรวมเข้ากับคอร์ของ WordPress เราจึงไม่ใช้ไฟล์ xmlrpc.php อีกต่อไป แทนที่จะใช้ไฟล์นี้ ตอนนี้คุณสามารถสื่อสารกับแอพมือถือของ WordPress, ไคลเอนต์เดสก์ท็อป, ปลั๊กอิน Jetpack และระบบและบริการอื่นๆ โดยใช้ REST API

นอกจากนี้ยังสามารถรวม REST API กับระบบที่หลากหลาย และความยืดหยุ่นนั้นมากกว่าของ xmlrpc.php เนื่องจาก XML-RPC ถูกแทนที่ด้วย REST APIs คุณต้องปิดการใช้งาน xmlrpc.php บนเว็บไซต์ของคุณเพื่อหลีกเลี่ยงปัญหา

เหตุใดคุณจึงควรปิดใช้งาน XML-RPC

คุณควรระวังว่าไฟล์ xmlrpc.php อาจเปิดเผยช่องโหว่ที่เปิดใช้งาน XML-RPC ของไซต์ WordPress ของคุณต่อแฮกเกอร์ ดังนั้นคุณต้องปิดการใช้งาน

การใช้ XML-RPC ไม่จำเป็นสำหรับการสื่อสารภายนอก WordPress อีกต่อไป หากคุณต้องการให้เว็บไซต์ของคุณปลอดภัยที่สุด คุณควรปิดการใช้งาน

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

หากเว็บไซต์ของคุณเปิดใช้งาน XML-RPC แฮกเกอร์สามารถใช้เป็นเครื่องมือในการโจมตี DDoS บนเว็บไซต์ของคุณได้ พวกเขาสามารถใช้โมดูล xmlrpc.php เพื่อสร้าง pingbacks จำนวนมากในไซต์ของคุณ ซึ่งสามารถโอเวอร์โหลดเซิร์ฟเวอร์และทำให้เว็บไซต์ล่มได้

นอกจากนี้ xmlrpc.php ยังส่งข้อมูลการรับรองความถูกต้องด้วยคำขอแต่ละรายการ ดังนั้นแฮกเกอร์อาจสามารถสกัดกั้นข้อมูลนี้และใช้เพื่อพยายามเข้าถึงเว็บไซต์ของคุณ การโจมตีแบบเดรัจฉานนี้สามารถอนุญาตให้แฮกเกอร์รันโค้ดที่เป็นอันตราย ลบโค้ด หรือแม้แต่สร้างความเสียหายให้กับฐานข้อมูลของคุณ

จะตรวจสอบการเปิดใช้งาน XML-RPC ได้อย่างไร

โปรดคลิกลิงก์ต่อไปนี้เพื่อเข้าสู่เว็บไซต์: WordPress XML-RPC Validation Service

เมื่อคุณป้อนชื่อโดเมนของคุณแล้ว ให้คลิกปุ่มตรวจสอบ

ตรวจสอบว่าเปิดใช้งาน xmlrpc บน WordPress

หากการทดสอบสำเร็จ ตอนนี้ XML-RPC จะถูกเปิดใช้งาน ซึ่งควรจะปิดทันที

ปิดการใช้งาน XMLRPC โดยใช้ปลั๊กอิน WordPress

ด้วยเหตุผลหลายประการ เจ้าของไซต์อาจต้องการปิดใช้งานฟังก์ชัน XMLRPC คุณสามารถใช้ปลั๊กอินต่างๆ เช่น ปิดใช้งาน XML-RPC เพื่อทำสิ่งนี้

ปิดใช้งาน XMLRPC โดยใช้ปลั๊กอินปิดการใช้งาน XML-RPC

เราอธิบายวิธีใช้ปลั๊กอิน Disable XML-RPC เพื่อปิดใช้งานฟังก์ชัน XMLRPC โปรดลงชื่อเข้าใช้แผงการดูแลระบบ WordPress ของคุณ

1. คลิกที่ Plugins แล้ว Add New

2. ป้อน “ปิดการใช้งาน XML-RPC” ในช่องค้นหา ติดตั้งปลั๊กอินปิดการใช้งาน XML-RPC หลังจากนั้น

ติดตั้งปลั๊กอินใหม่ใน WordPress

3. เปิดใช้งานปลั๊กอิน และคุณพร้อมที่จะไป จากนั้น XML-RPC จะถูกปิดใช้งาน

ติดตั้งปิดการใช้งานปลั๊กอิน CML-RPC

ในปลั๊กอินนี้ คุณจะพบตัวตรวจสอบ XML-RPC ที่สามารถใช้ตรวจสอบว่า XML-RPC ถูกปิดใช้งานหรือไม่ ในกรณีที่ปิดใช้งาน XML-RPC ข้อความแสดงความล้มเหลวจะปรากฏขึ้น ถ้าไม่ คุณสามารถปิดการใช้งานด้วยปลั๊กอินนี้

กำหนดค่าการเปิดใช้งาน XML-RPC และ REST API ด้วย Plugin

ปลั๊กอิน REST XML-RPC Data Checker ช่วยให้คุณสามารถกำหนดค่า REST API และ xmlrpc.php บนเว็บไซต์ของคุณในลักษณะที่ละเอียดยิ่งขึ้น

หลังจากที่คุณติดตั้งและเปิดใช้งานปลั๊กอินแล้ว ให้คลิกแท็บ XML-RPC หลังจากคลิกแท็บ REST XML-RPC Data Checker ในการตั้งค่า

ผ่านปลั๊กอิน คุณสามารถระบุได้อย่างชัดเจนว่าคุณสมบัติใดของ xmlrpc.php ที่เปิดใช้งานบนไซต์ของคุณ นอกจากนี้ยังสามารถปิดการใช้งานได้อย่างสมบูรณ์ นอกจากนี้ยังมีแท็บในปลั๊กอินที่ให้คุณควบคุม REST API หากคุณเลือกที่จะทำเช่นนั้น

ปิดใช้งาน XMLRPC โดยไม่ต้องใช้ปลั๊กอิน

หากคุณไม่ต้องการเพิ่มปลั๊กอินอื่นในเว็บไซต์ของคุณ คุณสามารถปิดการใช้งาน xmlrpc.php โดยใช้ตัวกรองหรือไฟล์ .htaccess ของคุณ ลองพิจารณาทั้งสองตัวเลือกด้วยกัน

ปิดใช้งาน xmlrpc.php ผ่านตัวกรอง

การใช้ตัวกรอง xmlrpc_enabled ทำให้ง่ายต่อการปิดการใช้งาน xmlrpc.php คุณควรเพิ่มฟังก์ชันนี้และเปิดใช้งานบนเว็บไซต์ของคุณ:

 add_filter( 'xmlrpc_enabled', '__return_false' );

สามารถเพิ่มฟังก์ชันลงในไฟล์ฟังก์ชันของธีมได้ ไฟล์ .htaccess สามารถแก้ไขได้โดยใช้ cPanel หรือ FTP ขึ้นอยู่กับว่าคุณเชื่อมต่อกับผู้ให้บริการโฮสต์โดยใช้ Apache

ฟังก์ชัน __return_false ของ WordPress ส่งคืนเงื่อนไขเท็จแบบบูลีน ตัวกรองนี้บล็อกเฉพาะการดำเนินการที่กำหนดให้ผู้ใช้ที่เข้าสู่ระบบ

ต้องยกเลิกการลงทะเบียนจากวิธีการทั้งหมดเพื่อปิดใช้งานการทำงานทั้งหมดของเซิร์ฟเวอร์ XMLRPC เพื่อให้บรรลุสิ่งนี้ คุณต้องเชื่อมต่อตัวกรอง xmlrpc_methods

 add_filter( 'xmlrpc_methods', 'betterstudio_remove_xmlrpc_methods' ); function 'betterstudio_remove_xmlrpc_methods( $methods ) { $methods = array(); //empty the array return $methods; }

ไฟล์ xmlrpc.php สร้างอ็อบเจ็กต์ของคลาส wp_xmlrpc_server เมื่อมีการร้องขอ ภายในโฟลเดอร์ wp-includes เป็นไฟล์คลาสที่มีคุณสมบัติที่เรียกว่าเมธอด

คุณสมบัติเมธอดประกอบด้วยอาร์เรย์ของชื่อฟังก์ชันที่สามารถเข้าถึงได้ผ่านคำขอ XML-RPC

ฟังก์ชันจะถูกส่งกลับพร้อมข้อความแสดงข้อผิดพลาดเมื่อไม่ได้รวมอยู่ในอาร์เรย์นี้ ดังนั้น หากคุณล้างอาร์เรย์ คุณจะมั่นใจได้ว่าจะไม่สามารถใช้ฟังก์ชันใดๆ ได้

ปิดใช้งาน XML-RPC โดยใช้ .htaccess

การปิดใช้งาน XML-RPC โดยใช้ .htaccess มีขั้นตอนง่ายๆ ไม่กี่ขั้นตอน นี่คือวิธีปิดการใช้งาน xmlrpc.php .htaccess:

  • คุณสามารถใช้ FTP หรือ File Manager เพื่อไปยังไดเร็กทอรีรากของเว็บไซต์ของคุณ
  • คุณควรเปิดไฟล์ .htaccess
  • คุณจะต้องเพิ่มรหัสต่อไปนี้ในไฟล์ .htaccess ของคุณ:
 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>

xxx.xxx.xxx.xxx สามารถแทนที่ด้วยที่อยู่ IP ที่คุณต้องการให้สิทธิ์เข้าถึง xmlrpc.php หากคุณต้องการลบ xmlrpc.php ออกจาก WordPress ทั้งหมด คุณสามารถลบบรรทัดนี้ได้

ปิดใช้งาน XMLRPC ใน Apache/Nginx

การปิดใช้งาน XMLRPC ใน Apache/Nginx อาจเป็นกระบวนการง่ายๆ ควรเพิ่มรหัสต่อไปนี้ในไฟล์กำหนดค่า Apache เพื่อปิดใช้งาน xmlrpc.php:

 < VirtualHost > ---------- < files xmlrpc.php > order allow,deny deny from all < /files > < /VirtualHost >

การใช้รหัสต่อไปนี้ในไฟล์การกำหนดค่า Nginx คุณสามารถปิดการใช้งาน xmlrpc.php:

 server { ----------- location /xmlrpc.php { deny all; } }

ค้นหาและค้นหาการโจมตี XML-RPC ในลีนุกซ์รุ่นต่างๆ ได้อย่างไร?

หากคุณกำลังค้นหาการโจมตี XML-RPC ในลีนุกซ์รุ่นต่างๆ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อหยุดการโจมตี xmlrpc.php:

เซิร์ฟเวอร์ CentOS ที่ติดตั้ง Apache:
 # grep xmlrpc /var/logs/httpd/access.log
ด้วย Apache บน Ubuntu:
 # grep xmlrpc /var/logs/apache2/access.log
สำหรับเซิร์ฟเวอร์ที่ใช้ Nginx:
 # grep xmlrpc /var/logs/nginx/access.log
สำหรับเซิร์ฟเวอร์ที่ใช้ cPanel:
 # grep xmlrpc /home/username/logs/access.log

คุณจะได้รับผลลัพธ์ต่อไปนี้หากคำสั่งก่อนหน้านี้ถูกดำเนินการบนไซต์ WordPress ที่อยู่ภายใต้การโจมตี:

 POST /xmlrpc.php HTTP/1.0” 200 674 “-” “Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)

เมื่อใดควรเปิดใช้งานไฟล์ XML-RPC.php

มีบางสถานการณ์ที่จะเป็นประโยชน์ในการเปิดใช้งาน XML-RPC และนี่คือบางส่วน:

  • หาก REST API ไม่พร้อมใช้งานเมื่อคุณมีเว็บไซต์เก่าที่ไม่สามารถอัปเดตเป็นเวอร์ชัน 4.4 หรือสูงกว่าได้ไม่ว่าจะด้วยเหตุผลใดก็ตาม
  • โปรแกรมไม่สามารถเข้าถึง REST API บนเว็บไซต์ที่คุณใช้เพื่อสื่อสารกับมันได้
  • เพื่อรวมแอปพลิเคชันของบุคคลที่สามบางตัวที่ต้องใช้ XML-RPC เพื่อทำงาน

อย่างไรก็ตาม ควรสังเกตว่าไม่มีการวิพากษ์วิจารณ์ข้างต้นเป็นเหตุผลเพียงพอสำหรับการใช้ XML-RPC และ xmlrpc.php เพื่อหาประโยชน์ต่อไป

เหตุผลเดียวที่ WordPress มีก็คือมันเข้ากันได้แบบย้อนหลัง ดังนั้น คุณจะต้องการใช้งานหากคุณใช้ WordPress เวอร์ชันที่ล้าสมัยเท่านั้น

สำหรับผู้ที่ต้องการทำให้ไซต์ของตนเป็นปัจจุบันและสนับสนุนซอฟต์แวร์เวอร์ชันล่าสุด ควรปิดใช้งาน xmlrpc.php

การทดสอบฟังก์ชัน XML-RPC ใน WordPress

นอกจากนี้ คุณสามารถใช้ตัวเลือกการทดสอบ WordPress เพื่อตรวจสอบว่าเว็บไซต์ของคุณถูกปิดการใช้งานจากการรับคำขอ XML-RPC ได้สำเร็จ

เพื่อจุดประสงค์นี้ คุณสามารถดาวน์โหลด WordPress Mobile App ไปยังโทรศัพท์ของคุณได้ แอปพลิเคชันนี้มีเวอร์ชัน Android และ iPhone หลังจากติดตั้งแอปบนอุปกรณ์ของคุณแล้ว ให้แตะที่ป้อนที่อยู่เว็บไซต์ที่มีอยู่ของคุณเพื่อเริ่มใช้งาน

เสร็จเรียบร้อย หากคุณเห็นข้อความแสดงข้อผิดพลาดว่าบริการ XML-RPC ถูกปิดใช้งานบนไซต์นี้ นี่คือข้อความต้องห้ามของ WordPress xmlrpc.php 403

บทสรุป

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

REST API ช่วยให้ไซต์ของคุณสามารถสื่อสารกับโปรแกรมอื่นๆ ทำให้สามารถปิดใช้งาน xmlrpc.php ได้โดยไม่ต้องกังวล หากคุณต้องการเพิ่มความปลอดภัยให้กับเว็บไซต์ของคุณ ให้ทำตามขั้นตอนที่กล่าวถึงเพื่อทำสิ่งนี้