Server IP : 15.235.198.142 / Your IP : 216.73.216.121 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/craft/wp-content/plugins/wordfence/lib/rest-api/ |
Upload File : |
<?php abstract class wfRESTBaseController { protected $tokenData; /** * @param WP_REST_Request $request * @return WP_Error|bool */ public function verifyToken($request) { $validToken = $this->isTokenValid($request); if ($validToken && !is_wp_error($validToken) && $this->tokenData['body']['sub'] === wfConfig::get('wordfenceCentralSiteID') ) { return true; } if (is_wp_error($validToken)) { return $validToken; } return new WP_Error('rest_forbidden_context', __('Token is invalid.', 'wordfence'), array('status' => rest_authorization_required_code())); } /** * @param WP_REST_Request $request * @return WP_Error|bool */ public function verifyTokenPremium($request) { $validToken = $this->isTokenValid($request); if ($validToken && !is_wp_error($validToken) && $this->tokenData['body']['sub'] === 'wordfence-central-premium' ) { return true; } if (is_wp_error($validToken)) { return $validToken; } return new WP_Error('rest_forbidden_context', __('Token is invalid.', 'wordfence'), array('status' => rest_authorization_required_code())); } /** * @param WP_REST_Request $request * @return bool|WP_Error */ public function isTokenValid($request) { $authHeader = $request->get_header('Authorization'); if (!$authHeader) { $authHeader = $request->get_header('X-Authorization'); } if (stripos($authHeader, 'bearer ') !== 0) { return new WP_Error('rest_forbidden_context', __('Authorization header format is invalid.', 'wordfence'), array('status' => rest_authorization_required_code())); } $token = trim(substr($authHeader, 7)); $jwt = new wfJWT(); try { $this->tokenData = $jwt->decode($token); } catch (wfJWTException $e) { return new WP_Error('rest_forbidden_context', $e->getMessage(), array('status' => rest_authorization_required_code())); } catch (Exception $e) { return new WP_Error('rest_forbidden_context', __('Token is invalid.', 'wordfence'), array('status' => rest_authorization_required_code())); } return true; } }