auf meiner Website gibt es PHP-Dateien, die ich in andere PHP-Dateien einbinde... sie führen verschiedene Aufgaben aus, wie die Verbindung zu meiner Datenbank und verschiedene andere Funktionen... jetzt kenne ich den angegebenen Pfad meiner Dateien... also kann ich den Pfad wie folgt angeben
http://www.mysite.com/myfiles/
Dadurch wird die Verzeichnisliste der Dateien in diesem Verzeichnis angezeigt.
ich weiß, dass ich zur Vermeidung der Verzeichnisauflistung einen Dateinamen eingeben muss index.html
ODER index.php
dies anstelle der Verzeichnisauflistung tun muss
aber ich kenne trotzdem den Pfad der Datei.. http://www.mysite.com/myfiles/con.php
dadurch wird der Code ausgeführt, aber Sie können die Quelle natürlich nicht sehen, weil sie clientseitig ist..
ABER gibt es eine Möglichkeit, diese PHP-Datei mit ihrem Quellcode zu erhalten, wenn jemand den Pfad kennt ... das wäre ein Sicherheitsrisiko, nicht wahr?
Antwort1
Nun, zunächst einmal sollten Sie in der Lage sein, die Verzeichnisliste zu deaktivieren (und so Ihren Verzeichnisbaum nicht mit nutzlosen index.php-Dateien zu verunreinigen), indem Sie einfach die folgende Zeile in eine .htaccess-Datei in Ihrem Includes-Verzeichnis einfügen:
Options -Indexes
Was nun die Möglichkeit für Benutzer angeht, den PHP-Quellcode abzurufen, sollte alles gut gehen, solange Ihr Webserver richtig eingerichtet ist, um PHP-Dateien zu interpretieren und sie nicht nur direkt bereitzustellen (vorausgesetzt, dass Ihre Include-Dateien keine echo()
Variablen oder etwas ähnlich Dummes enthalten).
Antwort2
Wenn Sie AddType oder SetHandler für PHP-Dateien definiert haben, werden diese von Apache/Webserver interpretiert, bevor sie an Clients übermittelt werden. Der Client sieht also nicht die PHP-Quelle, sondern nur das generierte HTML.
Antwort3
Wenn ich Sie richtig verstehe, möchten Sie den PHP-Quellcode abrufen, damit die Leute die tatsächliche URL der PHP-Datei kennen. Sie könnten so etwas verwenden, aber denken Sie daran: Es bietet keine echte Sicherheit. Schließen Sie es also besser nicht in PHP-Dateien ein, die private Dinge wie DB-Benutzer/Passwort usw. enthalten.
<?php
if($_GET['hash'] === "jV1V-7-VhS09K-_77GtEoOd86K2-ba-W") {
show_source(__FILE__);
}
?>
Auf diese Weise können nur Leute, die diesen "Hash" kennen (und böse Leute, die Sie mit Brute-Force-Methoden erzwingen), den Quellcode erhalten, indem sie zuhttp://example.org/myfiles/con.php?hash=jV1V-7-VhS09K-_77GtEoOd86K2-ba-W.