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:
Ein Bildupload klappt, aber bei einer Datei mit folgendem Inhalt:

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)?
Hier mein Code:
PHP-Quellcode
- <?php
- if ((isset($_SERVER['REQUEST_METHOD'])) and ($_SERVER['REQUEST_METHOD'] == 'POST')) {
- $imgname="test";
- if ((isset($_FILES[$imgname])) and ($_FILES[$imgname]['name'] != '')) {
- $extensions = array('jpg', 'jpeg', 'png', 'gif');
- $ext = strtolower(pathinfo($_FILES[$imgname]['name'], PATHINFO_EXTENSION));
- if (in_array($ext, $extensions)) {
- $image = 'data:image/' . $ext . ';base64,' . base64_encode(file_get_contents($_FILES[$imgname]['tmp_name']));
- unlink($_FILES[$imgname]['tmp_name']); // temp. Datei löschen
- }
- }
- }
- ?>
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)?