php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.08.2008, 18:40  
fliptow
Gast
 
Beiträge: n/a
Standard [Erledigt] Sicher Bilder hochladen?

Hallo Leute,
ich bin momentan dabei, ein Bilder-Script zu programmieren. Was bisher auch sehr gut funktioniert. Die Frage ist nur: Wie kann ich die Sicherheit verbessern? Dies bezieht sich eiglt nur auf den Upload-Teil. Reicht es, wenn ich die Dateiendung überprüfe und mit getimagesize(); überprüfe wie Groß das Bild ist? Sollte es kein "echtes" Bild sein, wird getimagesize(); ja eiglt meckern?? Hab ich noch was vergessen? Danke!
mfg
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.08.2008, 19:03  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo!

Also ich mache das bei mir so,ich trenne den String der aus dem file Feld im Formular kommt am Punkt und trage den Namen des Bildes und die Endung getrennt in die DB ein!

getimagesize() prüft die Endungen authomatisch,aber du könntest mit einem preg_match() zum Beispiel noch den Namen des Bildes der ja vor dem Punkt steht prüfen,so das da auch nur Zeichen drin stehen die du zulassen willst. Jenachdem wie hoch die Sicherheit sein soll,desto weniger Zeichen lässt zu! ich würde da nur a-z A-Z und 0-9 zulassen!

mfg der litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 16.08.2008, 21:08  
fliptow
Gast
 
Beiträge: n/a
Standard

Nee ich meine, wenn ich mit getimagesize() die Bildgröße überprüfe, sollten ja keine "gefakten" Bilder hochgeladen werden können, oder nicht? Weil theoretisch könnte man mit mod_rewrite Bilder "faken" und somit Code einschleusen?
 
Alt 16.08.2008, 21:15  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Mit getimagesize überprüfst du doch keine Bildgröße sondern denFiletype des Bildes ob es ein jpg,gif,png,swf ist und nicht mehr!

Die Größe prüfst du mit

PHP-Code:
//bildbreite prüfen
if($_FILES['image']['name'][0] >$width)
     {
      echo 
msgBox("Das Bild ist zu breit! Maximal erlaubt 1024px!".$link."");
      exit();
     }
     
//prüfung maximaler höhe
     
if($_FILES['image']['name'][1] >$height)
     {
      echo 
msgBox("Das Bild ist zu hoch! Maximal erlaubt 768px!".$link."");
      exit();
     }
     
//prüfung maximaler größe in kb
     
if($_FILES['image']['size'] > (100 1024))
     {
      echo 
msgBox("Das Bild zum File ist zu groß max. 100KB!".$link."");
      exit();
     } 
und was hat die Größe mit gefakten Bildern zu tun?

Dazu ist ein preg_match doch da,das dir niemand was einschleusen kann!

mfg der litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 16.08.2008, 21:20  
fliptow
Gast
 
Beiträge: n/a
Standard

Natürlich kann man mit getimagesize(); die Größe überprüfen.

PHP-Code:
<?php
   $img 
"header.jpg";
   
$size getimagesize($img);
   echo 
"breite: " $size[0];
   echo 
"hoehe: " $size[1];
?>
Mit Mod_rewrite kann man andere URLs "vorgaukeln" also ich könnte theoretisch mit Mod_rewrite eine bla.php zu bla.jpg machen und dadurch würde der Server es als Bild erkennen. In Wirklichkeit ist dort aber Code drinne, mit dem man Cookies o.a auslesen könnte.
 
Alt 16.08.2008, 21:29  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

OK das wusste ich so nicht,ich kenne das überprüfen der Größe nur so wie ich es schrieb! Von daher entschuldige bitte!

Mit Mod Rewrite kenne ich mich leider nicht aus.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 17.08.2008, 12:38  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Im FILE-Array stehen die Infos zum hochgeladenen Bild, dass sich zu dieser Zeit noch im tmp-Ordner des Servers rumlümmelt. Wenn alle Prüfungen erfolgreich waren, dann schiebe ich es mit move_uploaded_file an den gewünschten Platz.
getimagesize kann man wohl auch auf das Bild im tmp-Ordner anwenden, muss dann halt Name und Pfad wissen. Aber das macht an dieser Stelle wenig Sinn, weil man ja eh alles im FILE-Array hat und dort alle Elemente durchgeht.
Wolla ist offline  
Alt 17.08.2008, 19:36  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
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

Also:
- Dateiendungen prüfen, um bspw. Upload von htaccess Dateien oder über die URL aufrufbaren Scripten zu unterbinden
- getimagesize (Bild kann trotzdem PHP enthalten !)
- nicht aufrufbares Verzeichnis als tmp_dir
- geeignete maximale Größe
- include des Bildes über PHP auf jeden Fall verhindern
__________________
--
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 gerade online  
Alt 17.08.2008, 23:04  
fliptow
Gast
 
Beiträge: n/a
Standard

Gibt es keine PHP Funktion und/oder Apache-Mod womit man sicherstellen kann, dass es wirklich nur ein Bild ist? Das oben beschriebene war ja mal eine Sicherheitslücke bei einer sehr bekannten Forensoftware.
 
Alt 17.08.2008, 23:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
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

Nein
__________________
--
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 gerade online  
 


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
Bilder ohne DB sicher speichern Diet PHP Tipps 2005 6 25.03.2009 00:07
Bilder hochladen und speicher Zabimaru PHP Tipps 2008 7 09.04.2008 17:58
Bilder Ordner hochladen? CHRIS PHP Tipps 2005-2 3 30.12.2005 17:20
Bilder löschen PHP Tipps 2005-2 4 24.10.2005 11:37
Bilder hochladen PHP Tipps 2005-2 11 07.10.2005 12:29
Bilder aus einem unterverzeichis anzeigen.Hilfe PHP Tipps 2005-2 3 12.09.2005 15:36
Mehrere Bilder Hochladen und bearbeiten PHP Tipps 2005-2 7 23.07.2005 13:48
Bilder hochladen und Namen in DB speichern PHP Tipps 2005-2 3 21.06.2005 16:11
Bilder in Tabellen nixdorf HTML, Usability und Barrierefreiheit 36 09.05.2005 21:15
Bilder hochladen über Formular PHP Tipps 2005 3 11.04.2005 13:46
[Erledigt] mehrere Bilder auf einmal hochladen PHP Tipps 2005 3 31.03.2005 11:36
Bilder hochladen PHP Tipps 2005 1 14.02.2005 16:16
Suche Bilder hochladen Script ypsie Beitragsarchiv 5 21.01.2005 17:01
Bilder upload (Massen) PHP Tipps 2005 11 06.01.2005 14:14
Bilder hochladen mit/ohne Datenbank 'progman' PHP Tipps 2004 9 19.10.2004 21:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
getimagesize sicher, manko10 gif89a, php bilder sicher hochladen, bild hochladen php imagesize, php image upload sicher prüfen, php bilderupload, bild upload sicher getimagesize, sicher bilder hochladen, fotos hochladen sicherheit, bilder sicher hochladen, bilder upload sicherheit getimagesize

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:52 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