API REST (hay còn gọi là JSON REST API) được tích hợp sẵn vào lõi WordPress từ phiên bản 4.4. Về mặt kỹ thuật, nó cung cấp một giao thức cho phép các lập trình viên, các ứng dụng di động hoặc các website khác giao tiếp, đồng bộ dữ liệu (lấy, thêm, sửa, xóa) với website WordPress của bạn từ xa thông qua các định dạng JSON.
Sự ra đời của REST API là một bước tiến lịch sử của WordPress nhằm thay thế cho công nghệ XML-RPC cũ kỹ và đầy rẫy lỗ hổng bảo mật (Xem Hướng dẫn tắt XML-RPC). Không ai có thể phủ nhận lợi ích của REST API trong việc phát triển các ứng dụng Headless WordPress (sử dụng WordPress làm Backend và Frontend dùng React/Vue).
TUY NHIÊN, đối với 90% các Webmaster sở hữu website tin tức, blog hoặc doanh nghiệp cơ bản, REST API là một tính năng thừa thãi, gây lãng phí tài nguyên và tiềm ẩn rủi ro bảo mật nghiêm trọng.
Bài viết này, mình sẽ phân tích các rủi ro của REST API và hướng dẫn bạn cách tối ưu/vô hiệu hóa nó một cách thông minh nhất (Chuẩn 2026).

Mục lục
Tại sao bạn nên vô hiệu hóa / giới hạn REST API?
Việc tắt hoặc giới hạn REST API sẽ giúp cải thiện đôi chút về tốc độ (do dọn dẹp được các thẻ link wp-json thừa trong phần Head), nhưng lợi ích khổng lồ nhất nằm ở BẢO MẬT.
Mặc định, REST API của WordPress quá “hào phóng” khi nó công khai dữ liệu nội bộ của website ra bên ngoài. Lỗ hổng chết người nhất chính là Endpoint Users (/wp-json/wp/v2/users).
Bất kỳ ai (hoặc Botnet) chỉ cần gõ đường dẫn tenmiencuaban.com/wp-json/wp/v2/users lên trình duyệt, WordPress sẽ ngay lập tức trả về một danh sách hiển thị rõ ràng Tên đăng nhập (Username) của toàn bộ tác giả và Quản trị viên trên website của bạn.
Để Hacker tấn công trang web của bạn bằng phương pháp Brute Force (Dò mật khẩu), chúng cần 2 dữ kiện: Tên đăng nhập và Mật khẩu.
Việc mở REST API đã “dâng tận miệng” Tên đăng nhập cho Hacker. Bọn chúng chỉ việc lấy danh sách đó, ném vào các phần mềm rò rỉ mật khẩu và treo máy chạy cả ngày. Nếu tài khoản của bạn sử dụng mật khẩu yếu (Ví dụ: admin1234), website của bạn bốc hơi chỉ sau vài nốt nhạc. Thêm vào đó, việc bị dội bom hàng vạn request rò pass mỗi ngày sẽ khiến CPU máy chủ (VPS/Hosting) rơi vào trạng thái quá tải (DDoS).
Hướng dẫn Tối ưu REST API (Cập nhật 2026)
Chúng ta có 2 trường phái để giải quyết vấn đề này: Tắt hoàn toàn (Dành cho web thuần túy) hoặc Giới hạn (Dành cho người dùng Gutenberg và Plugin nâng cao).
Trường phái 1: Tắt hoàn toàn REST API bằng PHP Code
Nếu bạn đang sử dụng Classic Editor (Trình soạn thảo cũ) và không sử dụng các Plugin yêu cầu đồng bộ dữ liệu thời gian thực (như Contact Form 7 phiên bản mới, WooCommerce App…), bạn có thể tắt chặn hoàn toàn REST API đối với khách vãng lai.
Hãy sao chép đoạn code này và dán vào cuối file functions.php của Theme bạn đang dùng:
/**
* Vô hiệu hóa REST API cho người dùng chưa đăng nhập (Khách vãng lai)
*/
add_filter( 'rest_authentication_errors', 'wptangtoc_disable_rest_api_guests' );
function wptangtoc_disable_rest_api_guests( $access ) {
if ( ! is_user_logged_in() ) {
return new WP_Error( 'rest_disabled', __( 'REST API đã bị vô hiệu hóa vì lý do bảo mật. Vui lòng đăng nhập.' ), array( 'status' => rest_authorization_required_code() ) );
}
return $access;
}
/**
* Xóa bỏ các thẻ link wp-json rác trong phần thẻ <head>
*/
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );Đoạn mã trên rất thông minh: Nó chặn toàn bộ khách vãng lai (hoặc Hacker/Botnet) truy cập vào wp-json, nhưng vẫn cho phép các Quản trị viên (đã đăng nhập) sử dụng REST API bình thường để không làm lỗi các tính năng bên trong wp-admin.
Trường phái 2: Tối ưu tinh chỉnh bằng Plugin Disable REST API (Khuyên dùng)
Nếu bạn sử dụng trình soạn thảo Gutenberg (Block Editor), việc tắt hoàn toàn REST API (kể cả với code trên) có thể gây lỗi lưu bài viết hoặc lỗi hiển thị Block. Lúc này, bạn cần một công cụ phân quyền (Whitelist) chuyên sâu hơn.
Plugin Disable REST API chính là cứu cánh tuyệt vời nhất. Plugin này siêu nhẹ, code sạch, không ghi bất kỳ thứ gì vào Database và chỉ can thiệp vào các bộ lọc (hook) gốc của WordPress.
- Vào Plugins > Add New, tìm và cài đặt plugin Disable REST API (Tác giả: Dave McHale).
- Kích hoạt Plugin. Ngay sau khi kích hoạt, plugin sẽ tự động chặn toàn bộ các Endpoint của REST API đối với khách vãng lai.
- Truy cập vào Settings > Disable REST API để tiến hành phân quyền.

Tại giao diện của Plugin, bạn sẽ thấy danh sách toàn bộ các Endpoint (Cổng kết nối) đang tồn tại trên website của mình. Cơ chế của Plugin là: Cái nào được Check (Đánh dấu Tick) là cái đó được phép mở cho bên ngoài truy cập.

Ví dụ: Bạn dùng Plugin Contact Form 7, bạn hãy đánh dấu tick mở khóa cho thư mục /contact-form-7/v1. Bạn dùng WooCommerce, hãy tick mở /wc/v3… Quan trọng nhất, TUYỆT ĐỐI KHÔNG ĐÁNH DẤU TICK vào mục /wp/v2/users để chặn Hacker lấy danh sách Tên đăng nhập.
Sau khi thiết lập xong, kéo xuống dưới và bấm Save Changes.
Cách kiểm tra xem REST API đã bị chặn chưa
Hãy mở trình duyệt Ẩn danh (Mở tab mới không đăng nhập web), và dán đường link sau vào thanh địa chỉ:
https://tenmiencuaban.com/wp-json/wp/v2/usersNếu màn hình hiển thị đoạn mã lỗi JSON với nội dung: “REST API đã bị vô hiệu hóa vì lý do bảo mật…” hoặc lỗi báo không có quyền truy cập, xin chúc mừng, bạn đã bảo vệ thành công website của mình!
Lưu ý: Nếu bạn có dùng hệ thống Cache máy chủ hoặc Plugin Cache, hãy nhớ bấm xóa bộ nhớ đệm (Purge All Cache) để các xác lập bảo mật có hiệu lực ngay lập tức nhé.
Lời kết
Năm 2026, việc cân bằng giữa Tính năng và Bảo mật luôn là bài toán khó của mọi Webmaster. Tắt REST API một cách mù quáng có thể làm vỡ tính năng, nhưng để mở toang cửa thì lại rước họa vào thân. Sử dụng kỹ thuật chặn khách vãng lai hoặc kiểm soát qua Plugin Whitelist chính là bước đi khôn ngoan nhất để vừa giữ được sự mượt mà của Gutenberg, vừa chặn đứng hàng vạn con Bot rò rỉ mật khẩu mỗi ngày.
Đừng quên tham khảo thêm các thủ thuật thiết lập an toàn khác tại chuyên mục Hướng dẫn bảo mật WordPress cơ bản của WP Tăng Tốc nhé!



Để lại một bình luận