AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] Session-Management - Sicherheit
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Session-Management - Sicherheit

Ein Thema von fkerber · begonnen am 19. Jul 2009 · letzter Beitrag vom 19. Jul 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#1

[PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 19:52
Hi!

Es geht darum, sicherzustellen, dass keiner unrechtmäßiger Weise sich Zugriff auf Funktionen besorgen kann, die er nicht erreichen soll. (Die Sachen sind nur im geschützten LogIn-Bereich verfügbar).

Bislang sieht es so aus (das funktioniert auch - erscheint mir aber u.U. zu umständlich):
Es gibt eine zentrale index.php - in der steht ein "<? session_start(); ?>" am Anfang drin und bei erfolgreichem LogIn wird in $_SESSION passendes eingetragen. Alle Inhaltsdateien werden nur in diese index included - auf ein Aufruf der Datei test.php erfolgt über ?site=test
Um jetzt die Datei test.php vor bösen Menschen zu schützen sieht sie so aus;

Code:
if (!(isset($_SESSION['userID'])))
{
   echo "<meta http-equiv='refresh' content='1; URL=./'>";
   echo "Login erforderlich</div>
";
   echo "Sollten Sie nicht weitergeleitet werden, klicken Sie [url='./']hier[/url]!";
}
else {
/* EIGENTLICHER INHALT */
}
Da das in allen Dateien drinsteht, sind Änderungen mehr als lästig...

Jetzt kam die Idee auf, man könne das ja vllt. alles in einen Funktionsaufruf auslagern.
Wunschvorstellung wäre, das die test.php dann nur noch so aussieht:

Code:
check();
/* EIGENTLICHER INHALT */
Die Frage wäre jetzt, schafft man es, eine solche Funktion check() zu schreiben die in 100% (also wirklich 100%) aller denkbaren Fälle sicherstellt, dass niemand den eigentlichen Inhalt zu sehen bekommt, der ihn nicht sehen sollte. Durch den Verlust der if-else-Struktur würde ich u.U. befürchten, dass jemand den Reload abbrechen könnte oder ähnliches.

Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: [PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 20:07
Du kannst die weitere Verarbeitung durch PHP mit exit bzw. die beenden.

Somit kann deine Funktion so aussehen...
Code:
function check() {
  if (!(isset($_SESSION['userID']))) {
   echo "<meta http-equiv='refresh' content='1; URL=./'>";
   echo "<div>Login erforderlich</div>
";
   echo "Sollten Sie nicht weitergeleitet werden, klicken Sie [url='./']hier[/url]!";
   exit;
  } 
}
Aber mal was grundlegendes: PHP- und HTML-Code zu vermischen ist nicht gerade schön.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

Re: [PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 20:15
Hi!

Und das stellt dann sicher, dass der redirect durchgeführt wird, aber die Seite nicht weiter angezeigt wird?

Zitat von omata:
Aber mal was grundlegendes: PHP- und HTML-Code zu vermischen ist nicht gerade schön.
Wie würdest du / würde man es denn hier anders lösen?


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

Re: [PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 20:26
ein kleines Templatesystem, die HTML-Seiten per include reinladen, oder einen redirect zur HTML-Fehler-Seite.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#5

Re: [PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 20:30
Hi!

Naja, ein redirect wird direkt ja nicht gehen, da der Header schon weg ist und lohnt sich für den Dreizeiler jetzt wirklich ein Include einer HTML-Datei?

Was ist an der aktuellen Machart schlecht?


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

Re: [PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 20:41
Der Header ist doch erst "weg", wenn die erste Ausgabe erfolgt ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#7

Re: [PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 20:47
Ja, aber die Datei ist ja in der index.php inkludiert.
Und da ist ja schon oben ein Banner z.B. raus oder das Menü o.ä.


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

Re: [PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 20:52
Aber doch nicht, wenn Du gleich als erstes die Prüfung vornimmst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#9

Re: [PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 21:04
Wie meinst du das?

Der Aufbau ist:
index.php --> darin inkludiert z.B. header.php
und eben dann auch $_GET["site"].php inkludiert - und da ist diese Prüfung dann drin.


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

Re: [PHP] Session-Management - Sicherheit

  Alt 19. Jul 2009, 21:07
Achso, die Reihenfolge lässt sich nicht ändern?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz