Ergebnis 1 bis 14 von 14
Like Tree1Likes
  • 1 Post By rico2009

Thema: Virenscanner mit PHP

  1. #1
    rico2009 Guest

    Virenscanner mit PHP

    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:
    PHP-Code:
    // @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-Code:
    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
    Geändert von rico2009 (06-04-2014 um 18:08 Uhr)

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.732

    AW: Virenscanner mit PHP

    Es gibt auch Provider, die einen Virenscanner zentral laufen haben.

  3. #3
    rico2009 Guest

    AW: Virenscanner mit PHP

    Zitat Zitat von mikdoe Beitrag anzeigen
    Es gibt auch Provider, die einen Virenscanner zentral laufen haben.
    Ok, gut zu wissen.

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.732

    AW: Virenscanner mit PHP

    Das läuft dann so, dass die IP des hochladenden Clients gesperrt und die verseuchte Datei gelöscht wird. Der Hostingkunde muss dann die IP durch ein Ticket wieder freigeben lassen. Finde ich eigentlich ganz nett, so braucht sich der Hostingkunde darum nicht auch noch kümmern.

  5. #5
    rico2009 Guest

    AW: Virenscanner mit PHP

    Zitat Zitat von mikdoe Beitrag anzeigen
    Finde ich eigentlich ganz nett, so braucht sich der Hostingkunde darum nicht auch noch kümmern.
    Ja, auf jeden Fall.

    Mein Script ist auch mehr für Betreiber eines eigenen Servers gedacht. Ich hatte das für ein eigenes Projekt mal recherchiert und fand die Lösung über clamav ziemlich einfach. Eventuell können es ja noch mehr gebrauchen.
    mikdoe likes this.

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.714

    AW: Virenscanner mit PHP

    Hm... mir gefällt der Ansatz nicht, dass die Datei nur beim Hochladen geprüft wird... wenn ich also einen neuen Virus habe, kann ich den bei dir hochladen und dann bleibt der dort auch.

    Man sollte also auch bei eigens betriebenen Servern einen zentralen AV laufen haben, der alle Verzeichnisse in regelmäßigen Intervallen überprüft.

    PS: ich verstehe den Sinn deiner Wrapperfunktion nicht so ganz...
    Code:
    if (cl_scanfile($filenameTmp, $virusname) !== CL_VIRUS){}
    macht doch fast das Gleiche.
    Wenn das Modul nicht arbeitet, ist sowieso irgendetwas in dem Server nicht in Ordunung und der Nutzer sollte das merken. Statt dessen wird die Datei kommentarlos hochgeladen.
    Und wenn es ein Virus ist, kann ich im else immer noch eine Ausgabe machen... dann aber unter meiner Kontrolle mit der Ausgabe an der richtigen Stelle im Template.
    PPS: wie in JS sollte man in PHP auch immer === und !== verwenden...

  7. #7
    rico2009 Guest

    AW: Virenscanner mit PHP

    Zitat Zitat von kkapsner Beitrag anzeigen
    wenn ich also einen neuen Virus habe, kann ich den bei dir hochladen und dann bleibt der dort auch.
    Nö, die Datenbank des AntiViren Moduls wird doch in regelmäßigen Abständen aktualisiert.

    Zitat Zitat von kkapsner Beitrag anzeigen
    [...]
    Wenn das Modul nicht arbeitet, ist sowieso irgendetwas in dem Server nicht in Ordunung und der Nutzer sollte das merken. Statt dessen wird die Datei kommentarlos hochgeladen.
    [...]
    Wenn das Modul nicht arbeitet bzw. nicht installiert ist, wird die Datei nicht überprüft aber hochgeladen. Dieses Modul ist sozusagen ein nettes Feature. Ich kann nicht erwarten, dass jeder der meine Software käuft auch gleich clamav installiert. Das bleibt jedem selber überlassen. Aber du hast Recht, wenn das Modul nicht arbeitet sollte dieser Fehler separat behandelt werden und die Datei sollte nicht hochgeladen werden. Das hatte ich bei der Umsetzung ganz vergessen.


    Zitat Zitat von kkapsner Beitrag anzeigen
    PPS: wie in JS sollte man in PHP auch immer === und !== verwenden...
    Hmm... Das ist aber ein Typ Vergleich. Sowas benutzt man nur, wenn man es braucht. Oder meintest du mit 'immer' immer dann wenns benötigt wird?

  8. #8
    rico2009 Guest

    AW: Virenscanner mit PHP

    Nachtrag:
    Auf dem Server läuft natürlich zwangsweise noch ein zentraler AV. Das bringt die Installation von clamav mit, ansonsten funktioniert das PHP-Modul auch nicht.

  9. #9
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.714

    AW: Virenscanner mit PHP

    Zitat Zitat von rico2009 Beitrag anzeigen
    Nö, die Datenbank des AntiViren Moduls wird doch in regelmäßigen Abständen aktualisiert.
    Aber die Datei wird nur beim Hochladen überprüft...

    Zitat Zitat von rico2009 Beitrag anzeigen
    Hmm... Das ist aber ein Typ Vergleich. Sowas benutzt man nur, wenn man es braucht. Oder meintest du mit 'immer' immer dann wenns benötigt wird?
    Mit "immer" meine ich "immer". Ansonsten hast du da immer einen Autocast dazwischen, der, wie bei JS auch, seltsame Dinge bewirken kann.

    Deswegen steht das auch immer wieder in der PHP Doku. Z.B. hier: PHP: readdir - Manual

    Außerdem ist es schneller...

  10. #10
    rico2009 Guest

    AW: Virenscanner mit PHP

    Zitat Zitat von kkapsner Beitrag anzeigen
    Aber die Datei wird nur beim Hochladen überprüft...
    Achso. Wenn du einen neuen Virus hast der noch nicht in der DB vorhanden ist, kannst du den hochladen, stimmt. Sicherheitsleck, hast Recht. Aber wie gesagt, ein zentraler AV läuft auch.


    Zitat Zitat von kkapsner Beitrag anzeigen
    Mit "immer" meine ich "immer". Ansonsten hast du da immer einen Autocast dazwischen, der, wie bei JS auch, seltsame Dinge bewirken kann.

    Deswegen steht das auch immer wieder in der PHP Doku. Z.B. hier: PHP: readdir - Manual

    Außerdem ist es schneller...
    Ah, gut zu wissen. Dann war mein Wissensstand noch ein wenig älter...

  11. #11
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.714

    AW: Virenscanner mit PHP

    Gut... wenn der zentral auch noch läuft und den Uploadordner regelmäßig überprüft...

  12. #12
    rico2009 Guest

    AW: Virenscanner mit PHP

    Er kann keinen Uploadordner prüfen, da es keinen gibt. Die Dateien werden (was mich betrifft) in einer DB gespeichert.

    Um die Dateien dort regelmäßig zu prüfen müsste ich vermutlich einen Job bauen, der die Datei ausließt und durch den Scanner schickt.

  13. #13
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.714

    AW: Virenscanner mit PHP

    ...oder du überprüfst die Datei auch nochmal beim Ausliefern.

  14. #14
    rico2009 Guest

    AW: Virenscanner mit PHP

    Das wäre natürlich auch eine Möglichkeit...

Ähnliche Themen

  1. Welcher Virenscanner für W2003 Server
    Von mo im Forum Windows
    Antworten: 5
    Letzter Beitrag: 20-03-2008, 14:39
  2. virenscanner für nix....
    Von sporttasche im Forum Smalltalk
    Antworten: 1
    Letzter Beitrag: 30-03-2002, 22:20

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •