Einsehen von PHP Sourcecode möglich??

  • Hallo zusammen!


    Gibt es eigentlich eine Möglichkeit per Tool sich den Quellcode von php-Dateien übers Internet anzusehen.


    Wenn ja, dann müßte man ja z.B. die Zugangsdaten zu seiner Datenbank noch besonders schützen oder die kompletten Inhalte verschlüsseln.


    Allerdings, wenn man den Quellcode hat, könnte man auch diese Verschlüsselung ungehen.


    Wenn es mögliche wäre, dann könnte man ja auch hinter Login-Bereich schauen, die eigentlich mit PHP abgesichert sind.



    Gruß, Marco

    Das Tieferlegen der Festplattenköpfe erhöht keineswegs die Zugriffszeit!!

  • Hi,
    manche Webseiten (zB http://www.php.net) haben auf allen oder vielen Seiten unten einen Link "Get Source", was dann den Source dieser Seite rausrueckt.
    Ist aber ein explizites feature (wofuer es auch wieder extra skripten braucht). Man sollte aber trotzdem nicht so "programmieren", dass Geheimnisse im Source stehen.


    cu
    XlF

  • Zitat

    Original geschrieben von XlF42
    Man sollte aber trotzdem nicht so "programmieren", dass Geheimnisse im Source stehen.


    Irgenwoher muss ein Skript aber wissen welche Daten es zum Login in, z.B., eine MySQL Datenbank nehmen soll. Und an die PHP Sourcen kommt man ja nicht ran, ausser über FTP.

    "Think globally, act locally."
    "Ein Mann ein Wort, eine Frau ein Wörterbuch" -Boris Becker
    "Ein kluger Mann widerspricht keiner Frau. Er wartet bis Sie es selbst tut."
    "There's no replacement for displacement"

  • Hallo,


    grosj: im normal Fall gibt es keine möglichkeit an den Quellcode von php Skripten zu kommen, da der Webserver aus dem php Skript einen html Code generiert, der an deinen Webbrowser geschickt wird. Die ausnahme, wann du eventuell einen Quelltext vom php Skript sehen kannst, ist, wenn ein programmierfehler in dem Skript ist (oder der Webserver fehlerhaft configuriert ist.
    Daher speichert man keine Passwörter in einem php Skript. Es gibt die möglichkeit den user und das passwort in einer seperaten Datei zu speichern und diese dann auserhalb des Ordners, wo der Webserver die Dateien interpretiert, abspeichert. So wird diese Datei auch in einem Fehlerfall nicht angezeigt.


    Eckoman: Das Passwort und den user für MySql kann man wie oben geschrieben in einer externen Datei halten.
    Was aber auch möglich sein sollte:
    Bei phpMyAdmin (php Skript für die configuration von MySql), muß in der configuration Datei auch das Passwort im klartext stehen. Da dies nie schön ist ein unverschlüsseltes Passwort anzugeben legt man einen neuen user in MySql an, der keine Rechte hat, außer die users und db Tabellen lesen zu können. Dann wird, wenn man phpMyAdmin aufruft ein user Name und das Passwort abgefragt. Mit dem neuen User ist es für php möglich in der Datenbank zu schauen, ob der user exestiert und ob das Passwort richtig ist.
    Sollte irgend jemand gelingen den user Name und das Passwort herauszubekommen, was das php Skript benutzt, bringt ihm das nicht viel. Es kann egelich gesehen werden welche user in MySql angelegt sind.


    Da ich einen Webserver auf dem gleichen PC habe, wie MySql habe ich für diesen user den hostname localhost angegeben. Somit dürfte man von einem anderem PC auch gar nicht auf die Datenbank kommen.



    Gruß
    Dirk

  • DirkP:
    Wenn du den Usernamen & Passwort in einer externen Datei speicherst, kann man die aber evtl. auch von "aussen" anschauen. ;)

    "Think globally, act locally."
    "Ein Mann ein Wort, eine Frau ein Wörterbuch" -Boris Becker
    "Ein kluger Mann widerspricht keiner Frau. Er wartet bis Sie es selbst tut."
    "There's no replacement for displacement"

  • Zitat

    Original geschrieben von Eckoman
      DirkP:
    Wenn du den Usernamen & Passwort in einer externen Datei speicherst, kann man die aber evtl. auch von "aussen" anschauen. ;)


    Sagte aber auch, außerhalb des Ordners (besser formuliert) -> In einem Ordner, wo nicht über die URL zu erreichen ist.


    Siehe dazu PHP-Code im Browser sehen .


    Somit muß man schon per ftp oder ssh sich auf dem Server einlogen.
    Und solange die Passwörter verschlüsselt sind (wie auch in der Passwortdatei von .htaccess der fall ist), kann man nicht besonders viel anfangen.



    Gruß
    Dirk

  • Normal kommt man nicht an den PHP Qullcode, eine Ausnahme ist wie wenn schon gesagt, PHP komplett ausfallen sollte an der Server den Sourcecode im Klartext ausliefert. Wenn die Server einigermassen konfiguriert sind sollte das aber nicht passieren können. Eine andere Möglichkeit wäre ein Script über ein anderes Script auf dem Server auslesen zu lassen, aber normall sollten Server so konfiguriert sein, das man das nur innerhalb seines Ordners kann.

  • Vielen Dank für die vielen Antwort.


    Aber die Möglichkeit User & Passwd außerhalb des html-Ordners (Odner der per Browser als Root aufgefaßt wird........ komische Beschreibung ) wäre ja eine Alternative.


    Wie sieht es dann mit php-Dateien aus, die außerhalb dieses html-Ordners liegen. Kann ich die in meinen eigenen php-Dateien inkludieren??



    Aber es gibt auch Provider, die nur Zugriff auf meinen eigenen html-Ordner zulassen. So lande ich dann direkt in dem Ordner, in den ich meine HTML-, PHP-, ... Dateien stelle. Dort habe ich dann nicht die Möglichkeit User & Passwd in eine externe Datei zu schreiben, die eine Verzeichnis-Ebene höher liegt.


    Gruß, Marco

    Das Tieferlegen der Festplattenköpfe erhöht keineswegs die Zugriffszeit!!

  • Bei den meisten Providern (oder besser gesagt: bei vernünftigen Providern) hat dein Account in seinem User-Verzeichnis ein Unterverzeichnis "public_html" o.ä. Nur dieses ist über den Webserver erreichbar. Du kannst nun ganz einfach eine PHP-Datei in dem User-Verzeichnis (also eine Ebene über public_html) anlegen und dort z.B. die MySQL-Verbindung aufbauen lassen (per mysql_connect) oder Passwörter in einer Variablen speichern. Einbinden tust du das dass ganz einfach von einer PHP-Datei im public_html-Verzeichnis mittels

    PHP
    require("../login.php");

    Alternativ geht natürlich auch include, welches jedoch bei Nicht-Vorhandensein der login.php nur eine Fehlermeldung ausspuckt und trotzdem weitermacht. Meistens ist das nicht begrüßenswert.


    Wenn du nun bei einem Provider nur Zugriff auf das vom Webserver erreichbare Verzeichnis hast, kannst du nur hoffen, dass dir die Möglichkeit offen steht mittels .htaccess Verzeichnisse zu schützen oder mit Hilfe eine vom Provider angebotenen proprietären Methode. In diesem Fall legst du ein Unterverzeichnis an und kopierst da deine PHP-Datei mit Passwörtern rein. Dann schützt du das Verzeichnis mit dem Tool deines Providers oder legst eine Datei mit dem Namen ".htaccess" an, die folgenden Inhalt hat:

    Code
    Order deny,allow
    Deny from all


    Damit ist dieses Verzeichnis auch nicht mehr von außen erreichbar.

  • Vielen Dank für die ausführliche Erklärung.


    Nochmal eine Frage zu der Methode mit htaccess:
    Ich kann trotzdem per require/include aus diesem Verzeichniss php-Dateien in andere Scripte einbinden, ohne daß dort eine Meldung zur User/Passwort-Eingabe kommt oder die Servermeldung 403?


    Gruß, Marco

    Das Tieferlegen der Festplattenköpfe erhöht keineswegs die Zugriffszeit!!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!