HEX
Server: Apache
System: Linux 3b2f6704f3ac 4.4.0-101-generic #124-Ubuntu SMP Fri Nov 10 18:29:59 UTC 2017 x86_64
User: (2182)
PHP: 7.4.33
Disabled: proc_open, passthru, escapeshellcmd, exec, shell_exec, system, ini_alter, dl, popen, php_check_syntax, show_source, highlight_file, symlink, link, openlog, apache_child_terminate
Upload Files
File: /home/defaultwebsite/public/wp-content/plugins/really-simple-ssl/security/wordpress/rest-api.php
<?php
defined('ABSPATH') or die();
/**
 * @param $response
 * @param $handler
 * @param WP_REST_Request $request
 * @return mixed|WP_Error
 *
 * Hook into REST API requests
 */
function authorize_rest_api_requests( $response, $handler, WP_REST_Request $request ) {
    // allowed routes, whitelist option?
//    $routes = array(
//        '/wp/v2/csp etc',
//    );

    // Check if authorization header is set
    if ( ! $request->get_header( 'authorization' ) ) {
        return new WP_Error( 'authorization', 'Unauthorized access.', array( 'status' => 401 ) );
    }

    // if ( rsssl_get_networkwide_option('rsssl_restrict_rest_api') === 'restrict-roles' ) {
    // Check for certain role and allowed route
    if ( ! in_array( 'administrator', wp_get_current_user()->roles ) ) {
        return new WP_Error( 'forbidden', 'Access forbidden.', array( 'status' => 403 ) );
    }
    // }

    // if ( rsssl_get_networkwide_option('rsssl_restrict_rest_api') === 'logged-in-users' ) {
    if ( ! is_user_logged_in() ) {
        return new WP_Error( 'forbidden', 'Access forbidden to non-logged in users.', array( 'status' => 403 ) );
    }
    // }

    // if ( rsssl_get_networkwide_option('rsssl_restrict_rest_api') === 'application-passwords' ) {
    if ( ! is_user_logged_in() ) {
        return new WP_Error( 'forbidden', 'Access forbidden to non-logged in users.', array( 'status' => 403 ) );
    }
    // }

    return $response;

}

add_filter( 'rest_request_before_callbacks', 'authorize_rest_api_requests', 10, 3 );