HEX
Server: Apache
System: Linux vps-cdc32557.vps.ovh.ca 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64
User: hanode (1017)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/hanode/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/api.php
<?php

class wfWafApiException extends Exception {
}

class wfWafMissingApiKeyException extends wfWafApiException {
}

class wfWafApi {

	private $waf;
	private $apiKey;

	public function __construct($waf) {
		$this->waf = $waf;
		$this->apiKey = $this->getConfig('apiKey');
		if (empty($this->apiKey))
			throw new wfWafMissingApiKeyException('No API key is available');
	}

	private function getConfig($key) {
		return $this->waf->getStorageEngine()->getConfig($key, null, 'synced');
	}

	private function guessSiteUrl() {
		return sprintf('%s://%s/', $this->waf->getRequest()->getProtocol(), $this->waf->getRequest()->getHost());
	}

	private function guessSiteUrlIfNecessary($configKey) {
		$url = $this->getConfig($configKey);
		if (!$url)
			$url = $this->guessSiteUrl();
		return $url;
	}

	private function getSiteUrl() {
		return $this->guessSiteUrlIfNecessary('siteURL');
	}

	private function getHomeUrl() {
		return $this->guessSiteUrlIfNecessary('homeURL');
	}

	private function buildQueryString($additionalParameters = array()) {
		$parameters = array(
			'k' => $this->apiKey,
			's' => $this->getSiteUrl(),
			'h' => $this->getHomeUrl(),
			't' => microtime(true),
			'lang' => $this->getConfig('WPLANG')
		);
		$parameters = array_merge($parameters, $additionalParameters);
		return http_build_query($parameters, '', '&');
	}

	private function buildUrl($queryParameters, $path = '') {
		return WFWAF_API_URL_SEC . $path . '?' . $this->buildQueryString($queryParameters);
	}

	public function actionGet($action, $parameters = array()) {
		$parameters['action'] = $action;
		$url = $this->buildUrl($parameters);
		$response = wfWAFHTTP::get($url);
		if ($response === false)
			throw new wfWafApiException('Request failed');
		return $response;
	}

}