[php] verzeichnisse auslesen

so könnnten zwar gefährliche scripte drinne laden aber der angreifer kann sie net ausnutzen weil die datei nicht ausgeführt werden darf....

Denkfehler!
Die Sicherheit ist nur dann gegeben, wenn keine LocalFile-Inclusion-Lücke existiert. Wenn aus irgend einem Grund auf der Seite selbst oder in einer fertigen Web-Applikation auf dem Server (z.B. Foren-Software, phpMyAdmin) eine Lücke existiert, mit welcher man beliebige Dateien auf dem Server includen kann, dann nützen die Einstellungen in der .htaccess auch nix ;)

und ein Grund, weshalb finfo_file noch so selten genutzt wird:
weil es erst seit php 5.3 drin ist und auf vielen Servern noch php 5.2.x läuft...
 
Denkfehler!
Die Sicherheit ist nur dann gegeben, wenn keine LocalFile-Inclusion-Lücke existiert. Wenn aus irgend einem Grund auf der Seite selbst oder in einer fertigen Web-Applikation auf dem Server (z.B. Foren-Software, phpMyAdmin) eine Lücke existiert, mit welcher man beliebige Dateien auf dem Server includen kann, dann nützen die Einstellungen in der .htaccess auch nix ;)

na wenn ich im script selber jede beliebige datei ausführen kann die irgendwo liegt egal ob lokal oder remote dann ist sowie so alles zu spät...

aber ich meinte wenn man den upload hat und das verzeichnis dann per browser ansteuern kann ist der aufwand viel geringer als erst noch die localfile inclusion lücke zu suchen... oder hab ich da was falsch verstanden....
 
aber ich meinte wenn man den upload hat und das verzeichnis dann per browser ansteuern kann ist der aufwand viel geringer als erst noch die localfile inclusion lücke zu suchen... oder hab ich da was falsch verstanden....

nein. soweit ist das richtig... wollte eben nur darauf hinweisen, dass hier kein falsches Gefühl von Sicherheit entstehen sollte und man andere Tests dann vielleicht völlig vernachlässigt... denn wenn wirklich ne andere Lücke existiert (egal ob man für die was kann oder nicht), dann wird schon allein der Upload von Textdateien, sofern er für jeden frei zugänglich wäre, eine wahre Einladung, Schadcode über diesen Weg unterzubringen ;)

Aber da der Thread-Ersteller eh nur selbst und über FTP hochlädt, ist diese Sicherheitsproblematik (welche sicherlich ganze Bücher füllen kann ;) ) wohl zum Glück erstmal nicht relevant :)
 
Okay jetzt hab ich aber doch noch ne Frage:
Die Bilder werden korrekt und in der gewünschten größe angezeigt, wenn ich darauf klicke wird die ID meines bildes an ein anderes script per "get" übergeben,... dort wird das Bild dann größer angezeigt!

Nun will ich aber noch realisieren. Das mein Script erkennt, das wievielte Bild in diesem Ordner gerade angezeigt wird. Und dann ein weiter und zurück button anzeigt. Sodas man einfach im "großbild"-modus weiter schalten kann, am liebsten noch in ner endlosschleife (sprich wenn das letzte bild ausgegeben wird soll von vorne begonnen werden)

MySql_db:


Tabelle1 (picindex):

  • id

  • ordnername

Tabelle2 (bilder):

  • id
  • ordner_id
  • pfad

In der ersten Tabelle befinden sich die Ordnernamen und deren ID.
Alle Dateien die sich in diesem Ordnerbefinden (rekursives auslesen von verzeichnissen) bekommen die id des ordners als Fremdschlüssel eingetragen.

Ich hoffe ich konnte einen Überblick vermitteln, sodas mir jemand helfen kann.

Mfg Selig
 
wie du per sql alle bilder bekommst die zu einem ordner gehören sollte klar sein ...

"count(*)" sagt dir wie viele das sind ...

mit "LIMIT x,y" kannst du einschränken welche du haben willst ... x währe die anzahl der zu überspringenden zeilen, y die anzahl der auszugebenden zeilen ...

du brauchst demnach keine IDs für dein vorwärts/rückwärts blättern, sondern einen cursor ... den anfang macht das erste bild mit position = 0

select ... limit 0,1

das nächste bild des ordners bekommst du mit

select ... limit 1,1

das nächste

select ... limit 2,1

das schema sollte klar sein ... was tut man nun, um das ganze nahtlos mit anfang und ende aneinander zu kleben? ...

bevor du den positionsmarker in der sql abfrage verwendest, addiere die anzahl der bilder im ordner und nehmen das ergebnis modulo der anzahl der bilder im ordner ... das ergebnis ist immer eine zahl zwischen 0 und anzahl der bilder -1 ... somit immer eine gültige bildnummer, ausser der ordner ist leer ... den fall musst du anders behandeln ...
 
mmh, okay - danke, bin mal gespannt ob ich das umsetzen kann.
und wenn jmd ein beliebiges bild aufruft (also mitten in der reihenfolge eins rauszieht)? ich hoffe ich hab dich nicht falsch verstanden.


grüßle selig
 
wenn du alle bilder eines ordners anzeigen lässt, kannst du beim abrufen der einträge aus der db auch mitzählen und die position als parameter deinem link mitgeben der die große ansicht öffnet
 
Zurück
Oben