/**
  * @param wfWAFRequest|null $request
  * @return wfWAFRequest
  */
 public static function createFromGlobals($request = null)
 {
     if (version_compare(phpversion(), '5.3.0') >= 0) {
         $class = get_called_class();
         $request = new $class();
     } else {
         $request = new self();
     }
     return parent::createFromGlobals($request);
 }
Exemple #2
0
<?php

/*
	php_value auto_prepend_file ~/wp-content/plugins/wordfence/waf/bootstrap.php
*/
require_once dirname(__FILE__) . '/init.php';
if (!defined('WFWAF_LOG_PATH')) {
    define('WFWAF_LOG_PATH', WFWAF_PATH . 'logs/');
}
wfWAF::setInstance(new wfWAF(wfWAFRequest::createFromGlobals(), new wfWAFStorageFile(WFWAF_LOG_PATH . 'attack-data.php', WFWAF_LOG_PATH . 'ips.php', WFWAF_LOG_PATH . 'config.php', WFWAF_LOG_PATH . 'wafRules.rules')));
wfWAF::getInstance()->getEventBus()->attach(new wfWAFBaseObserver());
$rulesFiles = array(WFWAF_PATH . 'rules.php', WFWAF_LOG_PATH . 'rules.php');
foreach ($rulesFiles as $rulesFile) {
    if (!file_exists($rulesFile)) {
        @touch($rulesFile);
    }
    if (is_writable($rulesFile)) {
        wfWAF::getInstance()->setCompiledRulesFile($rulesFile);
        break;
    }
}
try {
    if (!file_exists(wfWAF::getInstance()->getCompiledRulesFile()) || !filesize(wfWAF::getInstance()->getCompiledRulesFile())) {
        try {
            wfWAF::getInstance()->updateRuleSet(file_get_contents(WFWAF_PATH . 'baseRules.rules'));
        } catch (wfWAFBuildRulesException $e) {
            error_log($e->getMessage());
        } catch (Exception $e) {
            error_log($e->getMessage());
        }
    }