เทคโนโลยี

ปิด WP Rest API ก่อนเกิดปัญหาใน WordPress 4.7

ใน WordPress 4.7 จะมีการเปิด WP Rest API เป็นค่าพื้นฐาน […]

ปรับปรุงล่าสุด 20/12/2559
ปิด WP Rest API ก่อนเกิดปัญหาใน WordPress 4.7

ใน WordPress 4.7 จะมีการเปิด WP Rest API เป็นค่าพื้นฐานโดยที่เราไม่ต้องทำการติดตั้ง Plugin เพื่อใช้งานอีกแล้ว แต่นั่นก็ทำให้เกิดปัญหาจากส่วนนี้เช่นกัน สำหรับคนที่เป็นคนใช้ทั่วไป ที่น่าจะไม่ได้ใช้ส่วนนี้แน่ๆ

ปัญหาที่เกิดก็คือถ้าเข้าไปที่

http://www.yourdomain.com/wp-json/wp/v2/posts

จะพบข้อมูลเกี่ยวกับโพสต์ทั้งหมดของเราในรูปแบบ json พ่นพรวดออกมาง่ายๆ เลย

ทำให้ง่ายต่อการก๊อบปี้ยิ่งนัก…

ทีนี้บุคคลทั่วไปเคนก็คิดว่าน่าจะไม่ต้องเปิดตรงส่วนนี้เพื่อใช้งานหรอก เพราะน่าจะไม่ได้ใช้ และวิธีการปิดที่ง่ายที่สุดก็คือ ติดตั้งปลั๊กอิน Disable REST API

แล้วก็มีอีกวิธีคือการใส่โค้ดเข้าไปที่ไฟล์ functions.php ในธีมที่เราใช้งานอยู่ แต่เคนลองแล้วมันไม่ยอมปิดกั้นแฮะ ไม่เกี่ยวกับแคชด้วยเพราะลองในโหมดไม่ระบุตัวตนก็ยังพ่นข้อมูลออกมาอยู่

ปลั๊กอิน Disable REST API

พอติดตั้งแล้วก็ไม่ต้องทำอะไรแค่เปิดให้มันทำงานแล้วลองเข้า http://www.yourdomain.com/wp-json/wp/v2/posts ก็จะพบว่าเป็นโค้ดสั้นๆ บรรทัดเดียว เหลือเพียงบอกว่า ไม่สามารถดูข้อมูล Rest API ได้ เฉพาะผู้ที่เข้าสู่ระบบแล้วเท่านั้นถึงจะสามารถดูได้ โค้ดหน้าตาแบบนี้

{"code":"rest_cannot_access","message":"Only authenticated users can access the REST API.","data":{"status":401}}

ก็เป็นอันเรียบร้อย จริงๆ มันก็เป็นส่วนที่เปิดให้ดูได้แหละ แต่ถ้าไม่ได้ใช้ก็ปิดไว้ก่อนก็ดีครับ

ขอบคุณข้อมูลจากกรุ๊ป WordPress Alliance – พูดคุย ปรึกษา แนะนำ WP

ขอบคุณ  Warat Wongmaneekit ที่เป็นผู้แจ้งข้อมูลในส่วนนี้ในกรุ๊ป

ขอบคุณแนวทางแก้ไขจากคุณ Jiraz Pipatwasin และเว็บที่ทางคุณ Jiraz เป็นผู้นำมาโพสต์เพื่อใช้อ้างอิง How to Use WP REST API and Disable JSON REST API in WordPress

เขียนโดย KanexKane

นักเขียนโค้ด นักเก็บเรื่องราว และนักทดสอบ ชอบแบ่งปันสิ่งเล็ก ๆ ที่ทำให้วันธรรมดาพิเศษขึ้น

รู้จักกันอีกนิด →