Firefox setzt Verbindung zurück bei Upload und Verarbeitung von PHP-Skript via HTML-Formular

  • PHP

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Firefox setzt Verbindung zurück bei Upload und Verarbeitung von PHP-Skript via HTML-Formular

    Ich habe ein Formular auf einer Website, wo man Bilder hochladen kann. Nun kann es natürlich sein, dass jemand z. B. einer PHP-Datei eine Bilddateiendung gibt und diese hochlädt. Im Prinzip wollte ich testen, ob ich dadurch in irgendeiner Form eine Sicherheitslücke schaffe (ich vermute allerdings nicht, weil die Datei kodiert in der Datenbank gespeichert wird und im Image-Tag ausgegeben wird). Allerdings lässt sich das Skript gar nicht erst hochladen.

    Hier mein Code:

    HTML-Quellcode

    1. <form action="test.php" method="post" enctype="multipart/form-data">
    2. <input type="file" name="test" />
    3. <input type="submit" value="test" />
    4. </form>

    PHP-Quellcode

    1. <?php
    2. if ((isset($_SERVER['REQUEST_METHOD'])) and ($_SERVER['REQUEST_METHOD'] == 'POST')) {
    3. $imgname="test";
    4. if ((isset($_FILES[$imgname])) and ($_FILES[$imgname]['name'] != '')) {
    5. $extensions = array('jpg', 'jpeg', 'png', 'gif');
    6. $ext = strtolower(pathinfo($_FILES[$imgname]['name'], PATHINFO_EXTENSION));
    7. if (in_array($ext, $extensions)) {
    8. $image = 'data:image/' . $ext . ';base64,' . base64_encode(file_get_contents($_FILES[$imgname]['tmp_name']));
    9. unlink($_FILES[$imgname]['tmp_name']); // temp. Datei löschen
    10. }
    11. }
    12. }
    13. ?>

    Ein Bildupload klappt, aber bei einer Datei mit folgendem Inhalt: <?php ?>, abgespeichert z. B. als x.php.jpg, erhalte ich von Firefox das hier:



    Gestern hatte ich gar keinen Ansatz, heute habe ich gesehen, dass mein Virenscanner anspringt. Aber selbst wenn ich ihn ausschalte, wird die Verbindug zurückgesetzt. Wo liegt das Problem? An meinem System oder an meinem PHP-Code (also die Uploadverarbeitung)?
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Einfacher als das Problem im PHP-Script zu lösen, ist die build-in Options des Inputs zu nutzen.

    HTML-Quellcode

    1. <input type="file" accept="image/*" />


    oder - wenn du auch die typen einschränken magst:

    HTML-Quellcode

    1. <input type="file" accept="image/x-png,image/jpeg" />


    Den Fehler schau ich mir gleich nochmal genauer an!


    VG,
    Acr0most :thumbup:
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Ich liebe diese absolut nicht hilfreichen Fehlermeldungen von heutigen Browsern.
    Öffne mal die Developer Tools, wechsle zum Tab "Network", setzt unter dem Gear-Icon (rechts) "Persist Log", lade die Seite neu, führe die Schritte aus und schau was der Server wirklich zurück meldet.
    @Takafusa
    Ich habe es nun mit Firefox, Chrome und dem Internet Explorer getestet (mehr gibt's ja quasi sowieso nicht, weil alles im Prinzip Chrome ist). Nur im IE geht es, in den anderen beiden Browser nicht. Allerdings habe ich nun festgestellt, dass mein Virenscanner (Norton Security) trotz deaktiviertem Autoprotect (Echtzeitschutz) und deaktivierter Firewall blockt. Das wird wohl der einzige Grund sein. Denn im IE klappt es, wie gesagt. Webserver ist übrigens Apache 2.4 unter Windows (das Komplettpaket "wampserver").

    @Acr0most
    Das accept verhindert nur falsche Dateiendungen und prüft in keiner Weise den Inhalt. Tatsächlich habe ich in meinem richtigen HTML-Formular (das oben ist nur die Testversion) accept=".jpg, .jpeg, .png, .gif" stehen. Ich vertraue dem Browser aber nicht und prüfe daher zusätzlich noch mit PHP. Ändert aber so oder so nichts daran, dass man ungültige Bilddateien hochladen kann.

    @slice
    Es wird ein POST gestartet und nichts übertragen (0 Bytes).

    Danke euch, aber wie geschrieben, scheint es nur an meinem Virenscanner zu liegen. Dann muss ich das halt online testen. ;)
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum