Trong Wordpres thì REST API là lợi ích quản lý WordPress bằng API. Nhưng đồng nghĩa với lợi ích, thì nó cũng mang lại rủi ro về bảo mật như có thể dễ dàng crawler dữ liệu, hoặc các hacker có thể thực hiện các cuộc tấn công Brute Force để lấy mật khẩu của bạn.
Vì vậy, nếu không sử dụng REST API, bạn nên vô hiệu hóa nó đi.
Rất đơn giản là sử dụng đoạn code dưới đây đặt vào file functions.php
của theme mà bạn đang sử dụng:
add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $result;
}
if ( ! is_user_logged_in() ) {
return new WP_Error( 'rest_not_logged_in', 'You are not currently logged in.', array( 'status' => 401 ) );
}
return $result;
});
Đoạn code trên sẽ yêu cầu tất cả các request tới REST API Endpoint phải bắt buộc xác thực đăng nhập mới có thể lấy dữ liệu về.
Hoặc các bạn có thể phân định 1 số user có quyền request tới REST API:
add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $result;
}
if ( ! is_user_logged_in() ) {
return new WP_Error( 'rest_not_logged_in', 'You are not currently logged in.', array( 'status' => 401 ) );
} else if ( ! current_user_can('administrator') {
return new WP_Error( 'rest_not_user', 'You do not have permission to use it.', array( 'status' => 401 ) );
}
return $result;
});
Đoạn code trên sẽ yêu cầu tất cả các request tới REST API Endpoint phải bắt buộc xác thực đăng nhập và user với quyền administrator
mới có thể lấy dữ liệu về.
Vì WordPress khuyến nghị chúng ta không nên vô hiệu hoàn toàn REST API, nó sẽ làm ảnh hưởng tới các chức năng của WP-Admin.