Michael Kraus: Mit PHP auf localhost?

Hallo, um gleich zur Sache zu kommen:

Ich versuche eine Art FileSharing mit PHP/Javascript zu machen und will nun zum Beispiel die Festplatte von jemandem auslesen der sich auf der Seite befindet. Ich habe dazu nun erstmal dieses Script geschrieben:
[PHP]
<?php
$fp = ("localhost");
$i = 0;
while ($file=readdir($fp)) {
 echo "<input type="hidden" name="file$i" value="$file">\n";
 $i++;
}
?>
[/PHP]
Ich habe schon einiges versucht (127.0.0.1, file://, $_SERVER['REMOTE_ADDR'], etc.) aber ich kenne mich da nicht so aus. Ich schliese auch nicht aus das das unmöglich ist aber versuche es hier mal.
(Ich habe mir PHP etc. selbst beigebracht also mach ich öfters mal was umständlicher als es ist^^)

  1. Hallo Michael.

    Ich versuche eine Art FileSharing mit PHP/Javascript zu machen und will nun zum Beispiel die Festplatte von jemandem auslesen der sich auf der Seite befindet.

    Von diesem Vorhaben kannst du abrücken, da es nicht umsetzbar ist.

    Ich habe dazu nun erstmal dieses Script geschrieben:
    [PHP]
    <?php
    $fp = ("localhost");
    $i = 0;
    while ($file=readdir($fp)) {

    Damit würdest du versuchen, in dem Verzeichnis, in dem sich dieses PHP-Script befindet, eine Datei namens „localhost“ auszulesen. Nicht mehr und nicht weniger.

    Ich habe schon einiges versucht (127.0.0.1, file://, $_SERVER['REMOTE_ADDR'], etc.) aber ich kenne mich da nicht so aus.

    Du könntest allerhöchstens dann Daten aus $_SERVER['REMOTE_ADDR'] holen, wenn dort zufälligerweise ein Server lauscht (nicht sehr wahrscheinlich), dieser Anfragen von überall entgegennimmt (noch weniger wahrscheinlich) und Daten ausliefert.

    Einen schönen Freitag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. hi,

      $fp = ("localhost");
      $i = 0;
      while ($file=readdir($fp)) {

      Damit würdest du versuchen, in dem Verzeichnis, in dem sich dieses PHP-Script befindet, eine Datei namens „localhost“ auszulesen. Nicht mehr und nicht weniger.

      Doch, noch weniger - er würde versuchen, readdir auf einen String anzuwenden.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hallo wahsaga.

        $fp = ("localhost");
        $i = 0;
        while ($file=readdir($fp)) {

        Damit würdest du versuchen, in dem Verzeichnis, in dem sich dieses PHP-Script befindet, eine Datei namens „localhost“ auszulesen. Nicht mehr und nicht weniger.

        Doch, noch weniger - er würde versuchen, readdir auf einen String anzuwenden.

        Berechtigter Einwand. In Gedanken dachte ich hier eher an file_get_contents.

        Einen schönen Freitag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
  2. Hallo Michael,

    Ich versuche eine Art FileSharing mit PHP/Javascript zu machen ...

    das ist unmöglich, weil

    1. PHP serverseitig läuft und nur auf Dateien zugreifen kann, die auf ebendiesem Server liegen. Okay, PHP kann auch per HTTP, FTP oder anderen Protokollen auf fremde Rechner zugreifen, z.B. auch den des momentanen Besuchers der Seite. Das kann aber, wie Mathias schon richtig bemerkte, nur dann von Erfolg gekrönt sein, wenn auf dem Rechner des Besuchers ein dazu passender Server läuft und die Anfrage beantwortet.

    2. Javascript clientseitig läuft und seinerseits keine Möglichkeit hat, überhaupt auf irgendwelche Dateien zuzugreifen. JS könnte zwar z.B. mit XMLHttpRequest() auf externe Ressourcen zugreifen, aber auch nur innerhalb derselben Domain. Vor allem könnte JS auf dem Client-Rechner keine Dateien auslesen bzw. speichern.

    Für eine Filesharing-Anwendung ist es also unabdingbar, dass auf jedem Rechner, der an diesem Sharing teilnehmen will, eine darauf zugeschnittene Anwendung läuft. Diese muss sowohl auf das Dateisystem des Rechners, als auch auf das Internet zugreifen können. Als plattformübergreifende Lösung wäre da eventuell ein Java-Applet denkbar; wenn's plattformspezifisch sein darf, wäre eine native Applikation für das jeweilige Hostsystem (Win32, Linux, MacOS) wohl die bessere Lösung.

    $fp = ("localhost");

    Was soll das sein? Damit weist du der Variablen $fp den String "localhost" zu. Das hat aber nicht im geringsten etwas mit einer Datei- oder Netzwerkoperation zu tun, die du wahrscheinlich im Sinn hast.
    Eventuell meintest du

    $fp = opendir("http://localhost/");

    Ich habe schon einiges versucht (127.0.0.1, file://, $_SERVER['REMOTE_ADDR'], etc.) aber ich kenne mich da nicht so aus.

    Dann solltest du dich bei passender Gelegenheit mal mit den Basics von PHP beschäftigen, etwa einem Lehrbuch oder auch, wenn du schon ein bisschen damit zurechtkommst, das offizielle PHP-Manual. Die Grundlagen von Netzwerkprotokollen und deren Zusammenhängen sind für ein Projekt wie ein Filesharing-Netz auch unverzichtbar. Für ein Einstiegsprojekt ist das aber IMHO ein paar Nummern zu groß.

    Deine bisherige Lernmethode mit Try&Error mag für eine gegebene Aufgabe auch irgendwann zum Ziel führen - aber es dauert in der Regel länger, und vor allem *verstehst* du die Lösung meistens nicht wirklich, wenn du sie nur "zufällig" gefunden hast.

    So long,
     Martin

    --
    Gott hilft niemandem, er erfreut sich nur an unseren Leiden.
      (Ashura)
  3. Hi there,

    Ich versuche eine Art FileSharing mit PHP/Javascript zu machen und will nun zum Beispiel die Festplatte von jemandem auslesen der sich auf der Seite befindet.

    Sehr gut, Du solltest Dich bei den Hirnentkernten vom BKA melden, die versuchen gerade, mit von der Polizei gesteuerten Trojanern das halbe Internet auszuspionieren und zu bedrohen. Die freuen sich sicher, wenn Ihnen jemand zeigt, daß es auch einfacher, nämlich nur mit PHP und Javascript funktioniert...

    1. Hallo,

      Sehr gut, Du solltest Dich bei den Hirnentkernten vom BKA melden, ...

      *g* Gut gebrüllt, Löwe!

      die versuchen gerade, mit von der Polizei gesteuerten Trojanern das halbe Internet auszuspionieren und zu bedrohen.

      Davon habe ich auch schon gelesen - und dann unwillkürlich auf den Kalender geschaut. Nein, es war wirklich nicht der 1. April.
      Ich frage mich, wie die das auf einem halbwegs ordentlich abgesicherten Rechner machen wollen. Einen Windows-PC, auf dem wie üblich alle Scheunentore weit offenstehen, kriegen sie vielleicht geknackt. Aber sonst?

      Die freuen sich sicher, wenn Ihnen jemand zeigt, daß es auch einfacher, nämlich nur mit PHP und Javascript funktioniert...

      Genau. Dann müssen sie nur noch alle Internet-Benutzer dazu animieren, mal auf der Website der Kripo vorbeizusurfen. Mit aktiviertem Javascript, versteht sich.

      Schönen Abend noch,
       Martin

      --
      Wer morgens zerknittert aufsteht, hat den ganzen Tag Gelegenheit, sich zu entfalten.