php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.03.2010, 19:13  
Neuer Benutzer
 
Registriert seit: 09.11.2008
Beiträge: 9
AllOutAnime befindet sich auf einem aufstrebenden Ast
Standard Hochgeladenes File auf exe checken?

Hallo,
ich würde mit php gerne checken, ob das vom Nutzer hochgeladene File eine exe ist.
Nun gibt php, wenn man $_FILES['userfile']['type'] nutzt "application/octet-stream" zurück, was aber auch bei .php dateien zurückgegeben wird.

Gibt es eine genauere Methode um zu checken, ob es sich um eine exe handelt?


Gruß
AoA
AllOutAnime ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.03.2010, 19:44  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Es hindert ja niemanden daran, eine *.exe als *.php hochzuladen. Den "type" kann man zusätzlich auch noch fälschen. Außerdem gibt es noch eine Vielzahl anderer gefährlicher Dateien (wozu *.php sicherlich auch zu zählen ist), insofern wäre es besser anstatt zu testen was es *nicht* sein soll (Blacklist) zu testen, was es für ein Dateityp sein soll (Whitelist). Bei Grafiken könntest du diese beispielsweise an eine Grafikverarbeitung übergeben und neu abspeichern. Dann kannst du auch sicher sein, dass es sich - bei fehlerfreier Verarbeitung - um eine Grafikdatei handelt und nicht um eine Fälschung.
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online   Mit Zitat antworten
Alt 10.03.2010, 11:12  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Man kann executeables am Inhalt erkennen, die besitzen alle einen Dateiheader, auf Windows PE-Header genannt (beginnt mit den Zeichen 'PE'). Aufbau dieser Header ist dokumentiert, mit Sicherheit auch für andere Betriebssysteme..

Portable Executable – Wikipedia
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 10.03.2010, 12:38  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
mit Sicherheit auch für andere Betriebssysteme..
Auf Unix ist aber bspw. das Konzept für Ausführbarkeit ganz anders. Nämlich nicht Extensiongebunden.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 10.03.2010, 13:26  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Auf Unix ist aber bspw. das Konzept für Ausführbarkeit ganz anders. Nämlich nicht Extensiongebunden.
Ist es auf Windowssystemen eigentlich auch nicht, dafür gibt es ja die Dateiheader...

Unter Windows haben diese Endungen sich aber eingebürgert (bzw. wurden aus CPM/DOS Zeiten mitgeschleppt); .EXE, .COM, .DLL, .OCX sind alles Endungen für "ausführbare" Dateien - wie die letztendlich gestartet werden müssen (sprich: Welche Einsprungprozedur durchlaufen wird und welche Umgebung zur Verfügung steht) ist im Header vermerkt.

Das eine EXE per Doppelklick gestartet wird, dafür sorgt die Windows Registry, aber Windows kann auch anders:

Benenn einfach mal eine .exe um und entfern die Endung, dann doppelklicken... startet trotzdem
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 11.03.2010, 01:00  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Benenn einfach mal eine .exe um und entfern die Endung, dann doppelklicken... startet trotzdem
Kann ich nicht bestätigen.

- Eine in whatever umbenannte .exe Datei startet nicht mehr (keine Extension-Verknüpfung gefunden)
- Eine in .com oder .bat umbenannte .exe Datei startet
- Eine in .exe umbenannte .bat Datei startet nicht mehr (erzeugt Fehler)
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (11.03.2010 um 01:05 Uhr).
nikosch ist offline   Mit Zitat antworten
Alt 11.03.2010, 12:26  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Da leck mich doch fett... habs gestern mal ausprobiert, da startete die Datei (ohne .EXE) - und heute öffnet sich ein Dialog "what to do"... hmpf, da hab ich Mist verzapft (hätte schwören können, daß das funktionierte)

Nunja, sei's drum. Ich nehm (fast) alles zurück.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Scriptabbruch nach Fehlerhaftem file() request princemichi PHP Tipps 2009 2 23.11.2009 21:34
Hackerangriff, und nu ? Garog Server, Hosting und Workstations 3 12.10.2009 11:13
[Erledigt] PHP in Console lithium Server, Hosting und Workstations 16 25.06.2009 00:52
[Erledigt] aus txt file orgenial lesen clemo PHP Tipps 2009 3 19.01.2009 09:29
Dateiupload + txt file vincent33 PHP Tipps 2008 2 10.11.2008 17:53
habe safe mode auf on gestellt ketchup PHP Tipps 2008 29 21.08.2008 09:23
[Erledigt] Exim --- Mailserver empfängt keine Mails Server, Hosting und Workstations 4 23.12.2005 18:28
filemtime() auf zweitem Server File prüfen? tekknotrip PHP Tipps 2005-2 2 19.08.2005 16:48
File nur temporär erstellen PHP Tipps 2005-2 2 02.08.2005 21:39
libmysqlclient.so.10 is needed Datenbanken 11 20.06.2005 15:27
[Erledigt] Unix file lesen? PHP-Fortgeschrittene 15 08.06.2005 18:05
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
file umbenennen - welcher php befehl? kain PHP Tipps 2004 4 20.08.2004 02:47
ausgefuehrtes php file als html speichern PHP Tipps 2004 8 28.07.2004 17:59
file(); problem PHP Tipps 2004 3 12.07.2004 11:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
dateiheader von dos exe, einsprungprozedur, hochgeladenes, hochgeladenes file verwenden php, \!==\ php

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum