Registrieren  •  Login 
  
 
im Forum


 FAQ   Mitgliederliste   Benutzergruppen   Teamseite   Suchen 

[Anleitung] Viren scannen mit PHP

 
Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 29 Jahre
Beiträge: 13951
Wohnort: Wien

BeitragVerfasst am: 29.08.2008, 14:47    Titel: [Anleitung] Viren scannen mit PHP

...und ClamAV Mr. Green

ClamAV ist auf vielen Servern bereits installiert und überprüft so z.B. alle Dateien die über FTP hochgeladen werden. Das ist zum Beispiel bei meinem Hoster all-inkl.com der Fall. Wer mit PHP hochgeladene Dateien auf Viren überprüfen möchte, kann das ganze einfach mit folgendem Script machen.

PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php

// Die Datei, die gescannt werden soll
$file_to_scan './pfad_zur_datei/jaja.jpg';

// exec überhaupt ausführbar?
$dis explode(', ', @ini_get('disable_functions'));
if(
in_array('exec'$dis) || !function_exists('exec'))
{
    echo 
'<b>exec() nicht ausführbar!</b>';
    exit;
}

// ClamAV ausführen
exec('clamscan --remove SCAN '.escapeshellarg(realpath($file_to_scan)), $result$code);

// Ergebnis verarbeiten
switch($code)
{
    case 
0:
        echo 
'<b style="color: green;">Kein Virus gefunden!</b>';
        break;
    case 
1:
        echo 
'<b style="color: red;">Virus gefunden!</b>';
        break;
        case 
56:
        echo 
'<b>Datei nicht gefunden oder kein Zugriff!</b>';
        break;
    case 
127:
        echo 
'<b>ClamAV ist nicht installiert oder du hast keinen Zugriff darauf!</b>';
        exit;
        break;
    default:
        echo 
'<b>Unbekannter Fehler!</b>';
        break;
}

// Detalierten Bericht ausgeben
echo '<hr>';
foreach(
$result as $line)
{
    echo 
'<br />'.htmlspecialchars($line);
}

?>


Damit dieses Beispiel funktioniert musst du den exec() Befehl verwenden dürfen. Außerdem muss ClamAV installiert sein und du Zugriff darauf haben. Falls irgendetwas davon nicht zutrifft wird dir das Script nur eine Fehlermeldung präsentieren. In die Variable $file_to_scan musst du die Datei eintragen, die überprüft werden soll. Das war's auch schon, der Rest sollte selbsterklärend sein.

Hinweis: Der Parameter --remove entfernt die Datei vom Server, falls ein Virus erkannt wurde. Falls das nicht erwünscht ist, bitte diesen Parameter entfernen. Weitere Informationen zu den Parametern von ClamAV findest du unter linux.die.net

Um deinen neuen Virenscanner einmal richtig zu testen, kannst du z.B. den CrashIE Virus vortäuschen. Diesen kannst du z.B. durch das Script anlegen lassen, falls du ihn über FTP nicht hochladen kannst. Nach der Zeile mit $file_to_scan, füge folgendes ein:
Code:
file_put_contents($file_to_scan, '<style>'.'*'.'{position:relative}'.'</style><table><input></table>');


Bitte bedenke, dass so ein Virenscann ziemlich Ressourcenlastig ist und nicht zum Spaß ausgeführt werden sollte. Als Abschluss möchte ich noch zwei detalierte Ausgaben von ClamAV zeigen, die man mit PHP auch noch genauer parsen könnte, um z.B. eigene und genauere Fehlermeldungen auszugeben.

Code:
/home/christian/CrashIE.html: HTML.CrashIE-1 FOUND

----------- SCAN SUMMARY -----------
Known viruses: 405345
Engine version: 0.93
Scanned directories: 0
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Time: 5.282 sec (0 m 5 s)

Code:
/home/christian/test.jpg: OK

----------- SCAN SUMMARY -----------
Known viruses: 405345
Engine version: 0.93
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Time: 5.188 sec (0 m 5 s)



MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht teilnehmen.
Du kannst Dateien in diesem Forum nicht hochladen.
Du kannst Dateien in diesem Forum nicht herunterladen.

 

Alle Zeiten sind GMT + 2 Stunden (Sommerzeit)
Aktuelles Datum und Uhrzeit: 09.04.2020, 19:28
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!
Software based on work from the phpBB-Group  •  Deutsche Übersetzung von phpBB.de

netcup - Internetdienstleistungen
 
 
[ happytec.at | forum.happytec.at | blog.happytec.at | esports.happytec.at | event.happytec.at ]