Warum ist es so? Darf ich etwa PHP-Befehle wie opendir(), readdir() nicht benutzen? Wenn ja, wie kann ich das umgehen und trotzdem auf meine Ordner zugreifen?
Für eure Hilfe wäre ich sehr dankbar.
viele Grüße
ypetrov
Kann sein, dass du bei opendir/readdir den gesamten System-Pfad mit angeben muss.
/users/ypetrov/www/
Wäre der Absolute Pfad zu deinem Webverzeichnis.
Das allerdings sollte nur bei PHP-Befehlen verwendet werden.
bei HTML z.B. wird wieder vom Webverzeichnis ausgegangen.
[quote=„Balmung“]Kann sein, dass du bei opendir/readdir den gesamten System-Pfad mit angeben muss.
/users/ypetrov/www/
Wäre der Absolute Pfad zu deinem Webverzeichnis.
Das allerdings sollte nur bei PHP-Befehlen verwendet werden.
bei HTML z.B. wird wieder vom Webverzeichnis ausgegangen.[/quote] Verstehe ich richtig, wenn meine Bilder unter presaentation/natur liegen, muss ich bei opendir/readdir-Befehlen /users/ypetrov/www/presaentation/natur und bei html <img src=„presaentation/natur/bild.jpg“ angeben?
[quote=„Hardi“]sieht ja höllisch aufwendig aus -> muss das so kompliziert überhaupt? je länger der code desto mehr fehler…[/quote] Das weiss ich dass der code ziemlich kompliziert ist. Ich bin ein Anfänger mit HTML, PHP und JavaScript. Momentan weiss ich nicht wie den Code übersichtlich machen kann, daher sieht alles so aus
[quote]Balmung hat geschrieben:
Kann sein, dass du bei opendir/readdir den gesamten System-Pfad mit angeben muss.
/users/ypetrov/www/
Wäre der Absolute Pfad zu deinem Webverzeichnis.
Das allerdings sollte nur bei PHP-Befehlen verwendet werden.
bei HTML z.B. wird wieder vom Webverzeichnis ausgegangen.
Verstehe ich richtig, wenn meine Bilder unter presaentation/natur liegen, muss ich bei opendir/readdir-Befehlen /users/ypetrov/www/presaentation/natur und bei html <img src=“presaentation/natur/bild.jpg” angeben?[/quote]
jo genau das meint balmung
PS: Ich bin auch kein php profi also nciht schlimm ich denke nur das soetwas auch einfacher sein kann
Danke für eure Hilfe. Ich habe meinen Fehler gefunden. Eine Datei hat gefehlt, daher konnte ich nichts sehen. Jetzt alles funktioniert. Es war nicht notwendig einen System-Pfad anzugeben.[quote=“Hardi”]PS: Ich bin auch kein php profi also nciht schlimm ich denke nur das soetwas auch einfacher sein kann [/quote] Ich bin auch überzeugt, dass alles noch besser machen kann. Später werde ich bestimmt wissen, wie man besser machen kann.
Ich bedanke mich bei euch herzlich für die Hilfe
liebe Grüße
ypetrov
Ich will noch auf eine kleine Sache aufmerksam machen:
Traue NIEMALS User-Input: ypetrov.bplaced.net/gallery. … tion=macro
Dieser Trick funktioniert zwar nicht ( dank gpc_magic_quotes=on), stellt aber trotzdem ein
Potenzielles Sicherheitsproblem dar.
Heißt: Traue niemals dem User, wenn es sich um Funktionen wie readdir, include, require, fopen etc. handelt… (OK, man sollte Eingaben von Usern generell nicht trauen…) ).
Bei dir würde ich das übrigens so machen:
<?php
/* hash deklarieren, userinput stellt den jewiligen
* schlüssel dar.
*/
$dirs = array( "foo" => "some/dir/", "bar" => "another/dir" );
$input = (isset($_GET['dir'])) ? $_GET['dir'] : "foo" ;
/* ist $dir im hash nicht enthalten ? */
if (! isset($dirs[$input]))
die("Error: Ungültige Eingabe: $input!\n");
$dir = $dirs[$input];
/* ab hier dann
* readdir($dir);
* und so...
*/
Edit: hier noch ein kleines Video, dass zeigt,
was für Auswirkungen eine Sicherheitslücke in einem PHP-Skript auslösen kann.
( In dem Fall ist es zwar SQL-Injection, zeigt aber trotzdem Anschaulich die Wichtigkeit
der Thematik )
vielen Dank für deinen/Ihren Rat. Daran habe ich nicht gedacht. Ich werde das auf jeden Fall umsetzen.
Verstehe ich das richtig? Soll ich in meinem Fall etwa so schreiben?
Kann ich übrigens irgendwo eingeben, dass alle Atribute in der Adressleiste (nach dem Fragezeichen) versteckt bleiben? Ich weiss, wenn man in einem Tag <form action=“gallery.php” method=“post”> verwendet, dann in der Adressleiste kann man nur http://www.ypetrov.bplaced.net/gallery.php sehen. Da ich keine Formulare verwende, weiss ich nicht wie ich das machen kann… Hat jemand eine Idee?
Dieses “Verstecken” ( auch POST kann man ohne weiteres auslesen/verändern, siehe zB das FF-Plugin Tamper-Data–) ließe sich auch via mod_rewrite* machen, damit kannst du aus site.de/gallery/macro.html ** .
Damit hättest du den get-parameter sozusagen “versteckt”, auch wenn er immer noch da ist.