function init($config) { self::$conf = $config; if (iswaf_status !== 1) { return; } if (!empty($_SERVER['REQUEST_URI'])) { self::$gpc['get'] = rawurldecode($_SERVER['REQUEST_URI']); } else { self::$gpc['get'] = rawurldecode($_SERVER['REQUEST_URI'] = $_SERVER["PHP_SELF"] . (!empty($_SERVER["QUERY_STRING"]) ? '?' . $_SERVER["QUERY_STRING"] : '')); } if (!empty($_SERVER['HTTP_COOKIE'])) { self::$gpc['cookie'] = rawurldecode($_SERVER['HTTP_COOKIE']); } if (!empty($_POST)) { self::$gpc['post'] = self::getpost(); } self::$conf['script'] = $_SERVER['SCRIPT_FILENAME']; self::$conf['request_uri'] = self::$gpc['get']; self::$conf['remote_ip'] = self::getremoteip(); self::$conf['server_info'] = array('SERVER_NAME' => $_SERVER['SERVER_NAME'], 'SERVER_ADDR' => $_SERVER['SERVER_ADDR'], 'HOSTNAME' => isset($_ENV['HOSTNAME']) ? $_ENV['HOSTNAME'] : ''); self::reload_conf(); self::runapi(); if (!self::mkdir(iswaf_database)) { return; } foreach (array('keys', 'conf', 'logs', 'argsdb') as $dir) { self::mkdir(iswaf_database . $dir); } self::allow_whitelist(); foreach (self::$conf['defences'] as $extend => $onoff) { $extend = $extend; $onoff = is_array($onoff) ? 'on' : $onoff; if (strtolower($onoff) == 'on') { if (isset(self::$conf['plus'][$extend])) { $conf = self::$conf['plus'][$extend]; } else { $conf = array(); } self::extend($extend, $conf); } } }