R
rico2009
Guest
Immer wenn man einen Dateiupload für die Öffentlichkeit baut, kommt man früher oder später (ehr früher) nicht drum rum einen Virenscanner einzubauen.
Für PHP gibt es z.B. das Modul "clamav" (Clam AntiVirus), womit man dies recht einfach realisieren kann:
Die Methode "virusCheck" kann man dann vor dem Upload in einem If-Statement aufrufen:
Die ClamAV Extension für PHP kann man sich z.B. hier runterladen: https://launchpad.net/php-clamav
Kleine Doku der Funktionen: http://php-clamav.sourceforge.net/index.php
Für PHP gibt es z.B. das Modul "clamav" (Clam AntiVirus), womit man dies recht einfach realisieren kann:
PHP:
// @return true=Virus gefunden, false=Kein Virus gefunden
public function virusCheck($filenameTmp, $filename) {
// Ist das Modul installiert und aktiv
if (!extension_loaded("clamav")) {
error_log("Datei '".$filename." (".$filenameTmp.")' kann nicht überprüft werden, da das Modul 'php-clamavlib' nicht gefunden/installiert wurde!");
return false;
}
$virusCode = cl_scanfile($filenameTmp, $virusname);
if ($virusCode == CL_VIRUS) {
echo "Datei '".$filename."' ist infiziert! Aus Sicherheitsgründen wird diese Datei nicht hochgeladen, für weitere Informationen wenden Sie sich bitte an den Administrator.";
error_log("Virus '".$virusname."' in Datei '".$filename." (".$filenameTmp.")' gefunden! (ClamAV Version ".cl_version().")");
return true;
} else {
return false;
}
}
Die Methode "virusCheck" kann man dann vor dem Upload in einem If-Statement aufrufen:
PHP:
if (!self::virusCheck($files["tmp_name"][$i],$files["name"][$i])) {
// Kein Virus da, Datei hochladen
// ...
}
Die ClamAV Extension für PHP kann man sich z.B. hier runterladen: https://launchpad.net/php-clamav
Kleine Doku der Funktionen: http://php-clamav.sourceforge.net/index.php
Zuletzt bearbeitet: