Base class for the interface to an external virus scanner. More...
Inheritance diagram for ilVirusScanner:Public Member Functions | |
| ilVirusScanner ($a_scancommand, $a_cleancommand) | |
| Constructor public. | |
| scanFile ($a_filepath, $a_origname="") | |
| scan a file for viruses | |
| cleanFile ($a_filepath, $a_origname="") | |
| clean an infected file | |
| fileCleaned () | |
| returns wether file has been cleaned successfully or not | |
| logScanResult () | |
| write the result of the last scan to the log | |
| logCleanResult () | |
| write the result of the last clean to the log | |
| getScanResult () | |
| get the pure output of the external scan | |
| getCleanResult () | |
| get the pure output of the external scan | |
| getScanMessage () | |
| get a located message with the result from the last scan | |
| getCleanMessage () | |
| get a located message with the result from the last clean | |
| getScanZipFiles () | |
| get info if class can scan ZIP files | |
Data Fields | |
| $type | |
| $scanZipFiles | |
| $scanCommand | |
| $cleanCommand | |
| $scanFilePath | |
| $scanFileOrigName | |
| $cleanFilePath | |
| $cleanFileOrigName | |
| $scanFileIsInfected | |
| $cleanFileIsCleaned | |
| $scanResult | |
| $cleanResult | |
| $ilias | |
| $lng | |
| $log | |
Base class for the interface to an external virus scanner.
This class is abstract and needs to be extended for actual scanners Only scanFile() and cleanFile() need to be redefined Child Constructors should call ilVirusScanner() Scan and Clean are independent and may work on different files Logging and message generation are generic
Definition at line 38 of file class.ilVirusScanner.php.
| ilVirusScanner::cleanFile | ( | $ | a_filepath, | |
| $ | a_origname = "" | |||
| ) |
clean an infected file
needs to be redefined in child classes here it simulates a clean "cleanable.txt" is expected to be cleanable
| string | path of file to check | |
| string | original name of the file to clean |
Reimplemented in ilVirusScannerSophos.
Definition at line 222 of file class.ilVirusScanner.php.
References logCleanResult().
{
// This function needs to be redefined in child classes
// It should:
// - call the external cleaner
// - set cleanFilePath to a_filepath
// - set cleanFileOrigName to a_origname
// - set cleanFileIsCleaned according the clean result
// - set cleanResult to the cleaner output message
// - call logCleanResult in any case
// - return the output message, if file is cleaned
// - return an empty string, if file is not cleaned
$this->cleanFilePath = $a_filepath;
$this->cleanFileOrigName = $a_origname;
if ($a_origname == "cleanable.txt")
{
$this->cleanFileIsCleaned = true;
$this->cleanResult =
"FILE CLEANED: [". $a_filepath. "] (VIRUS: simulated)";
$this->logCleanResult();
return $this->cleanResult;
}
else
{
$this->cleanFileIsCleaned = false;
$this->cleanResult =
"FILE NOT CLEANED: [". $a_filepath. "] (VIRUS: simulated)";
$this->logCleanResult();
return "";
}
}
Here is the call graph for this function:| ilVirusScanner::fileCleaned | ( | ) |
returns wether file has been cleaned successfully or not
Definition at line 261 of file class.ilVirusScanner.php.
{
return $this->cleanFileIsCleaned;
}
| ilVirusScanner::getCleanMessage | ( | ) |
get a located message with the result from the last clean
Definition at line 355 of file class.ilVirusScanner.php.
References $ret.
{
if ($this->cleanFileIsCleaned)
{
$ret = sprintf($this->lng->txt("virus_cleaned"), $this->cleanFileOrigName);
}
else
{
$ret = sprintf($this->lng->txt("virus_not_cleaned"),$this->cleanFileOrigName);
}
if ($this->cleanResult)
{
$ret .= " ". $this->lng->txt("virus_clean_message")
. "<br />"
. str_replace($this->cleanFilePath, $this->cleanFileOrigName,
nl2br($this->cleanResult));
}
return $ret;
}
| ilVirusScanner::getCleanResult | ( | ) |
get the pure output of the external scan
Definition at line 317 of file class.ilVirusScanner.php.
{
return $this->cleanResult;
}
| ilVirusScanner::getScanMessage | ( | ) |
get a located message with the result from the last scan
Definition at line 328 of file class.ilVirusScanner.php.
References $ret.
{
if ($this->scanFileIsInfected)
{
$ret = sprintf($this->lng->txt("virus_infected"), $this->scanFileOrigName);
}
else
{
$ret = sprintf($this->lng->txt("virus_not_infected"),$this->scanFileOrigName);
}
if ($this->scanResult)
{
$ret .= " ". $this->lng->txt("virus_scan_message")
. "<br />"
. str_replace($this->scanFilePath, $this->scanFileOrigName,
nl2br($this->scanResult));
}
return $ret;
}
| ilVirusScanner::getScanResult | ( | ) |
get the pure output of the external scan
Definition at line 306 of file class.ilVirusScanner.php.
{
return $this->scanResult;
}
| ilVirusScanner::getScanZipFiles | ( | ) |
get info if class can scan ZIP files
Definition at line 382 of file class.ilVirusScanner.php.
{
return $this->scanZipFiles;
}
| ilVirusScanner::ilVirusScanner | ( | $ | a_scancommand, | |
| $ | a_cleancommand | |||
| ) |
Constructor public.
Definition at line 151 of file class.ilVirusScanner.php.
References $ilias, $lng, and $log.
Referenced by ilVirusScannerAntiVir::ilVirusScannerAntivir(), ilVirusScannerClamAV::ilVirusScannerClamAV(), and ilVirusScannerSophos::ilVirusScannerSophos().
{
global $ilias, $lng, $log;
$this->ilias = & $ilias;
$this->lng = & $lng;
$this->log = & $log;
$this->scanCommand = $a_scancommand;
$this->cleanCommand = $a_cleancommand;
$this->type = "simulate";
$this->scanZipFiles = false;
}
Here is the caller graph for this function:| ilVirusScanner::logCleanResult | ( | ) |
write the result of the last clean to the log
public
Definition at line 288 of file class.ilVirusScanner.php.
Referenced by ilVirusScannerSophos::cleanFile(), and cleanFile().
{
$mess = "Virus Cleaner (". $this->type. ")";
if ($this->cleanFileOrigName)
{
$mess .= " (File ". $this->cleanFileOrigName. ")";
}
$mess .= ": " . ereg_replace("(\r|\n)+", "; ", $this->cleanResult);
$this->log->write($mess);
}
Here is the caller graph for this function:| ilVirusScanner::logScanResult | ( | ) |
write the result of the last scan to the log
public
Definition at line 271 of file class.ilVirusScanner.php.
Referenced by ilVirusScannerSophos::scanFile(), ilVirusScannerClamAV::scanFile(), ilVirusScannerAntiVir::scanFile(), and scanFile().
{
$mess = "Virus Scanner (". $this->type. ")";
if ($this->scanFileOrigName)
{
$mess .= " (File " . $this->scanFileOrigName . ")";
}
$mess .= ": " . ereg_replace("(\r|\n)+", "; ", $this->scanResult);
$this->log->write($mess);
}
Here is the caller graph for this function:| ilVirusScanner::scanFile | ( | $ | a_filepath, | |
| $ | a_origname = "" | |||
| ) |
scan a file for viruses
needs to be redefined in child classes here it simulates a scan "infected.txt" or "cleanable.txt" are expected to be infected
| string | path of file to scan | |
| string | original name of the file to scan |
Reimplemented in ilVirusScannerAntiVir, ilVirusScannerClamAV, and ilVirusScannerSophos.
Definition at line 177 of file class.ilVirusScanner.php.
References logScanResult().
{
// This function needs to be redefined in child classes.
// It should:
// - call the external scanner for a_filepath
// - set scanFilePath to a_filepath
// - set scanFileOrigName to a_origname
// - set scanFileIsInfected according the scan result
// - set scanResult to the scanner output message
// - call logScanResult() if file is infected
// - return the output message, if file is infected
// - return an empty string, if file is not infected
$this->scanFilePath = $a_filepath;
$this->scanFileOrigName = $a_origname;
if ($a_origname == "infected.txt" or $a_origname == "cleanable.txt")
{
$this->scanFileIsInfected = true;
$this->scanResult =
"FILE INFECTED: [". $a_filepath. "] (VIRUS: simulated)";
$this->logScanResult();
return $this->scanResult;
}
else
{
$this->scanFileIsInfected = false;
$this->scanResult = "";
return "";
}
}
Here is the call graph for this function:| ilVirusScanner::$cleanCommand |
Definition at line 68 of file class.ilVirusScanner.php.
| ilVirusScanner::$cleanFileIsCleaned |
Definition at line 110 of file class.ilVirusScanner.php.
| ilVirusScanner::$cleanFileOrigName |
Definition at line 96 of file class.ilVirusScanner.php.
| ilVirusScanner::$cleanFilePath |
Definition at line 89 of file class.ilVirusScanner.php.
| ilVirusScanner::$cleanResult |
Definition at line 124 of file class.ilVirusScanner.php.
| ilVirusScanner::$ilias |
Definition at line 131 of file class.ilVirusScanner.php.
Referenced by ilVirusScanner().
| ilVirusScanner::$lng |
Definition at line 138 of file class.ilVirusScanner.php.
Referenced by ilVirusScanner().
| ilVirusScanner::$log |
Definition at line 145 of file class.ilVirusScanner.php.
Referenced by ilVirusScanner().
| ilVirusScanner::$scanCommand |
Definition at line 61 of file class.ilVirusScanner.php.
| ilVirusScanner::$scanFileIsInfected |
Definition at line 103 of file class.ilVirusScanner.php.
| ilVirusScanner::$scanFileOrigName |
Definition at line 82 of file class.ilVirusScanner.php.
| ilVirusScanner::$scanFilePath |
Definition at line 75 of file class.ilVirusScanner.php.
| ilVirusScanner::$scanResult |
Definition at line 117 of file class.ilVirusScanner.php.
| ilVirusScanner::$scanZipFiles |
Definition at line 54 of file class.ilVirusScanner.php.
| ilVirusScanner::$type |
Definition at line 46 of file class.ilVirusScanner.php.
1.7.1