Example #1
0
 public function beforeRunRules()
 {
     // Whitelisted URLs (in WAF config)
     $whitelistedURLs = wfWAF::getInstance()->getStorageEngine()->getConfig('whitelistedURLs');
     if ($whitelistedURLs) {
         $whitelistPattern = "";
         foreach ($whitelistedURLs as $whitelistedURL) {
             $whitelistPattern .= preg_replace('/\\\\\\*/', '.*?', preg_quote($whitelistedURL, '/')) . '|';
         }
         $whitelistPattern = '/^(?:' . substr($whitelistPattern, 0, -1) . ')$/i';
         wfWAFRule::create(wfWAF::getInstance(), 0x8000000, 'rule', 'whitelist', 0, 'User Supplied Whitelisted URL', 'allow', new wfWAFRuleComparisonGroup(new wfWAFRuleComparison(wfWAF::getInstance(), 'match', $whitelistPattern, array('request.uri'))))->evaluate();
     }
     // Whitelisted IPs (Wordfence config)
     $whitelistedIPs = wfWAF::getInstance()->getStorageEngine()->getConfig('whitelistedIPs');
     if ($whitelistedIPs) {
         require_once dirname(__FILE__) . '/wfWAFUserIPRange.php';
         if (!is_array($whitelistedIPs)) {
             $whitelistedIPs = explode(',', $whitelistedIPs);
         }
         foreach ($whitelistedIPs as $whitelistedIP) {
             $ipRange = new wfWAFUserIPRange($whitelistedIP);
             if ($ipRange->isIPInRange(wfWAF::getInstance()->getRequest()->getIP())) {
                 throw new wfWAFAllowException('Wordfence whitelisted IP.');
             }
         }
     }
 }
 public function afterRunRules()
 {
     //wfWAFLogException
     $watchedIPs = wfWAF::getInstance()->getStorageEngine()->getConfig('watchedIPs');
     if ($watchedIPs) {
         if (!is_array($watchedIPs)) {
             $watchedIPs = explode(',', $watchedIPs);
         }
         foreach ($watchedIPs as $watchedIP) {
             $ipRange = new wfWAFUserIPRange($watchedIP);
             if ($ipRange->isIPInRange(wfWAF::getInstance()->getRequest()->getIP())) {
                 throw new wfWAFLogException('Wordfence watched IP.');
             }
         }
     }
 }
 public function afterRunRules()
 {
     //wfWAFLogException
     $watchedIPs = wfWAF::getInstance()->getStorageEngine()->getConfig('watchedIPs');
     if ($watchedIPs) {
         if (!is_array($watchedIPs)) {
             $watchedIPs = explode(',', $watchedIPs);
         }
         foreach ($watchedIPs as $watchedIP) {
             $ipRange = new wfWAFUserIPRange($watchedIP);
             if ($ipRange->isIPInRange(wfWAF::getInstance()->getRequest()->getIP())) {
                 throw new wfWAFLogException('Wordfence watched IP.');
             }
         }
     }
     if ($reason = wfWAF::getInstance()->getRequest()->getMetadata('finalAction')) {
         $e = new wfWAFBlockException($reason['action']);
         $e->setRequest(wfWAF::getInstance()->getRequest());
         throw $e;
     }
 }