コード例 #1
0
ファイル: scan.php プロジェクト: alphashuro/audeprac
 /**
  * 
  * @param $path
  * @param $doLog
  */
 function getScanData($path = '', $doLog = false)
 {
     $configModel =& JModel::getInstance('Configuration', 'JDefenderModel');
     $params = new JParameter($configModel->getIni());
     JD_Scanner::loadScanner();
     $fsScanner = false;
     if (!$this->getState('filesystem.scanned')) {
         $fsScanner =& JD_Filesystem_Scanner::getInstance();
         $fsScanner->loadValidator();
         // Set the "first scan" flag.
         if ($this->_isFirstScan()) {
             foreach ($fsScanner->listeners as $k => $v) {
                 if (method_exists($v, 'setFirstScan')) {
                     $fsScanner->listeners[$k]->setFirstScan(true);
                 }
             }
         }
         if ($doLog) {
             JD_Vars_Helper::setVar('status', 'jdefender_scan', JText::_('Scanning filesystem'));
         }
         // Run scanners
         if (empty($this->_filesystem_data)) {
             $this->_filesystem_data = $fsScanner->scan($path);
         }
     }
     $optScanner = false;
     if (!$this->getState('options.scanned')) {
         $optScanner =& JD_Options_Scanner::getInstance();
         $optScanner->loadValidator();
         if ($doLog) {
             JD_Vars_Helper::setVar('status', 'jdefender_scan', JText::_('Scanning system settings'));
         }
         // scan
         if (empty($this->_options_data)) {
             $this->_options_data = $optScanner->scan();
             $this->setState('options.scanned', true);
         }
     }
     // If filesystem scan ended
     if (!empty($this->_filesystem_data['EOF'])) {
         $this->setState('filesystem.scanned', true);
         unset($this->_filesystem_data['EOF']);
     }
     $result = array('filesystem' => &$this->_filesystem_data, 'options' => &$this->_options_data);
     return $result;
 }
コード例 #2
0
ファイル: jd_scanner.php プロジェクト: alphashuro/audeprac
 /**
  * Loads Scanner implementations
  * @param $name
  * @return mixed filename or boolean
  */
 function loadScanner($name = false)
 {
     jimport('joomla.filesystem.file');
     if ($name) {
         $name = JFile::makeSafe($name);
     }
     if (!$name) {
         $scanners = JD_Scanner::getScannerNames();
         $dir = JPATH_ROOT . DS . 'administrator' . DS . 'components' . DS . 'com_jdefender' . DS . 'lib' . DS . 'scanners';
         foreach ($scanners as $s) {
             require_once $dir . DS . $s . '.php';
         }
         return true;
     }
     $path = JPATH_ROOT . DS . 'administrator' . DS . 'components' . DS . 'com_jdefender' . DS . 'lib' . DS . 'scanners' . DS . 'jd_' . $name . '_scanner.php';
     if (JFile::exists($path)) {
         require_once $path;
         return 'JD_' . ucfirst($name) . '_Scanner';
     }
     return false;
 }
コード例 #3
0
 function __construct()
 {
     parent::__construct();
     $this->_new_version = null;
 }
コード例 #4
0
ファイル: scan.php プロジェクト: alphashuro/audeprac
 function createScanFileList()
 {
     $doLog = JD_Scan_Helper::isLogging();
     // disable logging for now
     JD_Scan_Helper::setLogging(false);
     $fsScanner =& JD_Scanner::getInstance('filesystem');
     // Register a validator, to form a filelist.
     $fileListCreator = new JD_Filelist_Creator();
     $fsScanner->register($fileListCreator);
     // Make the file list
     $results = $fsScanner->scan(JPATH_ROOT, false);
     $filename = $this->_getFileListName();
     // Write the file list to a temporary file
     file_put_contents($filename, $results['filelist'][1]);
     // Set filelist filename for scan process
     JD_Scan_Helper::setFilelist($filename);
     JD_Scan_Helper::setLogging($doLog);
     // Store total file number
     JD_Vars_Helper::setVar('total', 'jdefender_scan', $fsScanner->_filesScanned + $fsScanner->_foldersScanned);
     return array($fsScanner->_filesScanned, $fsScanner->_foldersScanned);
 }
コード例 #5
0
 /**
  * Loads validator(s)
  * (non-PHPdoc)
  * @see administrator/components/com_jdefender/lib/scanners/JD_Scanner#loadValidator($name)
  * @override
  */
 function loadValidator($names = false)
 {
     if (!$names) {
         $names = glob(JPATH_ROOT . DS . 'administrator' . DS . 'components' . DS . 'com_jdefender' . DS . 'lib' . DS . 'validators' . DS . 'filesystem' . DS . '*.php');
         foreach ($names as $k => $v) {
             $names[$k] = basename($v);
         }
         $names = array_map(array(&$this, '_getValidatorName'), $names);
     }
     settype($names, 'array');
     parent::loadValidator($names, 'filesystem');
 }
コード例 #6
0
 /**
  * Loads validator(s)
  * (non-PHPdoc)
  * @see administrator/components/com_jdefender/lib/scanners/JD_Scanner#loadValidator($name)
  * @override
  */
 function loadValidator($names = false)
 {
     if (!$names) {
         $names = glob(JPATH_ROOT . DS . 'administrator' . DS . 'components' . DS . 'com_jdefender' . DS . 'lib' . DS . 'validators' . DS . 'live_protection' . DS . '*.php');
         foreach ($names as $k => $v) {
             if (strpos($v, 'abstract') !== false) {
                 unset($names[$k]);
                 continue;
             }
             $names[$k] = basename($v);
         }
         $names = array_map(array(&$this, '_getValidatorName'), $names);
     }
     settype($names, 'array');
     parent::loadValidator($names, 'live_protection');
 }