de.comp.lang.php.* FAQ

5.15. Wie kann ein Besucher meiner Seite den PHP-Code im Browser sehen?

Antwort von Martin Jansen

Wenn der Webserver ordnungsgemäß konfiguriert ist und er PHP unterstützt, bekommt der Besucher der Seite den PHP-Code nicht zu sehen, da er vom Webserver geparst wird und nur der generierte HTML-Code an den Browser geschickt wird.

Folgende Szenarien sind jedoch denkbar, bei denen der Besucher den PHP-Code trotzdem zu sehen bekommt:

  • Auf dem Webserver ist kein PHP-Parser installiert. In diesem Fall behandelt der Webserver den PHP-Code wie "normalen" HTML-Code und schickt ihn unbearbeitet (ergo ungeparst) an den Browser.

  • Aufgrund einer Fehlfunktion des Webserver ist der PHP-Parser ausgefallen oder der Webserver benutzt ihn nicht mehr: In diesem Fall sieht der User ebenfalls den ungeparsten Source-Code im Browserfenster, da kein Parsing mehr stattfindet.

  • Ein "böser Junge" verschafft sich per FTP Zugriff auf die Daten: Auch hier hat der User die Möglichkeit, den Source-Code einzusehen, da der PHP-Parser nur Dateien parst, die über den Webserver abgefragt werden. Andere Schnittstellen wie zum Beispiel FTP berücksichtigt er nicht.

  • Ein User verschafft sich Zugriff auf den Webserver mit Telnet oder SSH: Auch hier kann er den PHP-Code ohne weiteres einsehen, indem er zum Beispiel cat irgendwas.php eingibt und der Inhalt der Datei irgendwas.php auf dem Bildschirm ausgegeben wird.

Siehe auch: Kann ich PHP-Dateien kompilieren und so vor Dritten schützen?

In jedem Fall ist es sinnvoll, Code mit Datenbankpassworten in einem Verzeichnis abzulegen, das nicht durch eine URL erreichbar ist oder das mit einer .htaccess-Datei gegen Zugriff gesichert ist. Dieser Code kann dann mit Hilfe von include() oder require() eingebunden werden. Siehe dazu auch den Abschnitt Wie kann ich mein Datenbankpasswort gegen Spionage sichern? dieser FAQ.

Valid HTML 4.01! Valid CSS!

5.15. Wie kann ein Besucher meiner Seite den PHP-Code im Browser sehen?
http://www.php-faq.de/q/q-php-code.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team