[GastForen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Forenindex -- Lesezeichen

2 Lesezeichen für php

|||| Mit PHP per include verschiedene Dateien einbinden
Aus gegebenem Anlass möchte ich hier mal darlegen, wie man unterschiedliche Dateien mit include einbindet, und dabei einen sicheren und vor allem wartbaren Code erhält.

Der Ausgangspunkt ist dieser Aufruf:

http://www.example.com/meine_datei.php?action=start


Code
# der folgende Bereich ist als Konfiguration zu verstehen 
# und sollte ganz am Anfang des Scriptes stehen
#
# Kann aber auch ausgelagert und für weitere Scripte benutzt werden.
#

$action_default = "start"; # das ist die Standardaktion

# in diesem Array werden alle zulässigen Aktionen hinterlegt
$actions = Array(
"start" => "datei0.php",
"aktion1" => "datei1.php",
"aktion2" => "datei2.php",
"aktion3" => "datei3.php",
"aktion4" => "datei4.php",
"aktion5" => "datei5.php",
"aktion6" => "datei6.php",
# ... usw.
);


### Ende der Konfiguration

#


# hier wird nun die passende Aktion ausgewählt
$action_file = $action_default;
if(isset($_GET['action'])){
$action_file = $actions[$_GET['action']] ? $actions[$_GET['action']] : $action_file;
}

# jetzt wird geprüft, ob die entsprechnde Datei überhaupt existiert
$filename = $_SERVER['DOCUMENT_ROOT'] . $action_file;

if (!file_exists($filename)) {
print "Schwerer Programmfehler: Aktion ist nicht vorhanden!";
exit;
}

# an dieser Stelle wird die jeweilige Datei eingebunden
# das ist die einzige Stelle mit include

include ("$filename");

# nun folgt das restliche Script


Wie man sieht, besteht der Code aus 2 Teilen: einer Konfiguration und dem eigentlichen Code. Damit ist es deutlich leichter möglich, spätere Erweiterungen anzubringen oder evtl. weitere Sicherheitsprüfungen.
...
oesi50
9. Jul 2007, 17:46
Diskussion: Sicherheit von Passwortabfragen
>> wenn ich das richtig verstehe, gibt es dort eine vorgegebene MySQL Datenbank,
>> in der alle User für den gesamten Server drin stehen.
>> Außerdem habe ich keine Möglichkeit weitere Informationen mit zu speichern, oder?

Du kannst alles frei definieren, es ist da nichts festgelegt.
Und Du kannst in der Tabelle mit den Benutzernamen und Paßwörtern
auch noch weitere Informationen speichern.


>> Letztendlich muss man dann auch in der Lage sein, das Modul zu installieren.

Am besten den Provider fragen, ohne root-Zugang läßt sich das Modul leider nicht installieren.
Besonders bei sehr vielen Benutzern ist es sehr angenehm für die Performance.


>> Wie sicher schätzt du denn von mir beschriebenen Weg ein den über .htaccess
>> eingeloggten Benutzer abzufragen und anhand des Benutzernamens
>> die weiteren Infos aus eine Datenbank zu holen?

Vom Browser zum Webserver wird der Benutzername und das Paßwort nur base64 codiert.
Innerhalb dieser Übertragung besteht die größte Unsicherheit, deshalb sollte man hier ein SSL-Zertifikat verwenden.
...
SabineP
4. Mai 2007, 15:43