php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.02.2007, 14:27  
Erfahrener Benutzer
 
Registriert seit: 14.02.2005
Beiträge: 790
GrU3nL!nG
Standard Dateien vor Framdzugriff schützen

Hi,

in meinem internen Bereich habe ich ein Upload Modul gebastelt, so dass User Dateien hochladen können.
Sind diese User eingeloggt, dann bekommen sie die Dateien, die zur verfügungstehen angezeigt, wenn diese nicht eingeloggt sind, dann bekommen sie diese nicht zu sehen.

Wenn ich nun jedoch den pfad kenne zu dieser datei, habe ich außerhalb der "Seite" Zugriff auf die Datei, sprich ich kenne den vollständigen Pfad:
Bsp.: www.blubbblubb.de/uploads/test.jpg

So wie kann ich test.jpg nun so schützen, dass der download, bzw. das Anschauen nur via internem Modul funktioniert??

Hoffe ich habe mich klar ausgedrückt, bei Rückfragen einfach posten.

Gruß Marc
__________________
Gruß Marc
GrU3nL!nG ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.02.2007, 14:37  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du kannst dir eine download.php basteln, der du IDs übergibst. Diese prüfst du mit dem aktuellen User aus der Session gegen um festzustellen, ob Berechtigung besteht, die Datei downzuloaden.

Wenn ja sendest du einen header() [bitte auf http://de.php.net/header nachlesen] und liest den Datei-Inhalt einfach per readfile() aus. Dieser Funktion kannst du den richtigen Pfad der Datei übergeben.

Somit bleiben die Pfade verborgen und die Dateien können nur über die download.php heruntergeladen werden.
Zergling-new ist offline  
Alt 02.02.2007, 14:47  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Zergling
Wenn ja sendest du einen header() [bitte auf http://de.php.net/header nachlesen] und liest den Datei-Inhalt einfach per readfile() aus. Dieser Funktion kannst du den richtigen Pfad der Datei übergeben.
bei mir liefert readfile die größe des bildes zurück
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline  
Alt 02.02.2007, 14:53  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ja, der Rückgabewert der Funktion ist die Dateigröße in Bytes, aber zusätzlich wird der Dateiinhalt noch in den Ausgabepuffer geschrieben (sprich standardmäßig an den Browser geschickt), was auch die Hauptaufgabe der Funktion ist.

Wenn du die Dateigröße ermitteln willst, solltest du filesize() benutzen

Beispiel:

// my.php
PHP-Code:
<?php
header
('Content-type: image/jpeg');
readfile('my.jpg');
?>
Beim Aufruf der my.php wird also ein Bild (my.jpg) und kein HTML ausgegeben.
Zergling-new ist offline  
Alt 02.02.2007, 15:14  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und schon hat er eine antwort auf seine frage
//Edit: aber ich hatte es echt nicht verstanden ^^ danke
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline  
Alt 03.02.2007, 11:59  
Erfahrener Benutzer
 
Registriert seit: 14.02.2005
Beiträge: 790
GrU3nL!nG
Standard

Hi ihr beiden,

diese Art exisatiert ja schon, wie ich es intern möglich mache die Datei herunterzuladen!

Meine frage war, wie ich die Datei selber schützen kann!
Weill wenn ich jetzt auf: www.blaHomepageblka.de/bilder/test.jpg
gehen würde, dann kann ich mir das Bild ja auch OHNE anmeldung anschauen
__________________
Gruß Marc
GrU3nL!nG ist offline  
Alt 03.02.2007, 12:12  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Am besten legst du die Dateien in einem Ordner auserhalb des Webordners an. Also das vom Internet aus garnicht drauf zugegriffen werden kann.

Ansonsten per .htaccess kannst du den Zugriff auch sperren.
Flor1an ist offline  
Alt 03.02.2007, 13:40  
Neuer Benutzer
 
Registriert seit: 07.09.2006
Beiträge: 24
Ticos
Standard

Schau Dir auch mal den Thread dazu an: http://www.phpfriend.de/forum/ftopic60801.html
Ticos ist offline  
Alt 05.02.2007, 13:06  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

erstmal: was genau möchtest du denn tun?
sollen die bilder nicht downloadbar sein oder möchtest du einfach nicht das sie z.b. von mir per image-tag eingebunden werden können?

... außerhalb des webordners *bei meinem provider guck* *domain umstell* so! ^^

oder so: wenn du ein script hast was die bilder "generiert" dann sieht der link der auf die datei zeigt ja nur noch so aus: [img]pics/pic.php?pic_id=32&thumb=0[/img] dieses script kann dann ja überprüfen (per session z.b.) ob der request von deiner seite kommt. wenn ja zeigt er das bild an, wenn nein dann halt nicht.
besonders bei bildern kann man sich sowieso nicht gegen (klauen) schützen, du kannst ledeglich eine art wasserzeichen einbetten ... gegen screen shots sind wir nunmal machtlos :wink:
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline  
 


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
PHP Dateien verschlüsseln GSJLink PHP-Fortgeschrittene 2 26.04.2008 12:29
[Logik] Mehrere Dateien als Anhang per Formular versenden PsychoEagle PHP Tipps 2008 2 27.08.2007 08:58
Dateien Zippen und direkt downloaden kiffy PHP Tipps 2006 0 18.04.2006 14:20
nur bestimmte Dateien aus einem Verzeichnis auslesen Madden PHP Tipps 2006 2 07.03.2006 17:10
Verzeichnis (Dateien) schützen aber per PHP zugriff zulassen Server, Hosting und Workstations 2 16.10.2005 10:13
Dateien löschen (mit "unlink") PHP Tipps 2005-2 8 09.06.2005 22:55
[Erledigt] Nur bestimmte Dateien anzeigen, wie mache ich das HILFE PHP Tipps 2005 4 02.04.2005 22:38
Dateien erstellen oder schreiben funktioniert nicht im Web PHP Tipps 2004-2 1 05.12.2004 19:39
[Erledigt] Ungenutzte Dateien PHP-Fortgeschrittene 3 25.11.2004 16:07
dateien zugänglich machen PHP Tipps 2004 8 22.10.2004 14:25
Mit PHP erzeugte Dateien besitzen die falschen Rechte PHP Tipps 2004 3 14.09.2004 12:54
[Erledigt] PHP Dateien auf Server einsehen - Verschlüsseln PHP Tipps 2004 6 12.09.2004 10:17
[Erledigt] Dateien aus Verzeichnissen vom Webserver auslesen und linken PHP Tipps 2004 3 08.09.2004 10:07
fopen bei *.htm dateien?? PHP Tipps 2004 3 23.08.2004 19:50
[Erledigt] Dateien können nicht erzeugt werden PHP-Fortgeschrittene 10 03.06.2004 16:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datei vor download schützen, dateiinhalt vor ansicht schützen, dateiinhalt vor Änderung schützen, dateien vor 3 vor download schützen, dateiinhalt schützen

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.