BlackBoard » Design, Programmierung & Entwicklung » Programmieren » PHP Ordner nach Login schützen. » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Ordner nach Login schützen.
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Flux
Junior Member


images/avatars/avatar-2252.gif

Dabei seit: 24.08.2006
Beiträge: 169

Ordner nach Login schützen.       Zum Anfang der Seite springen

Durch den Login prüfe ich ganz normal ob User und Pwd korrekt sind. Alles klar soweit.

Wenn die daten korrekt sind folgt eine Weiterleitung zu einer Seite in einem Untergeordneten Ordner. Alle Seiten/Dateien in diesem Ordner sind nur für eingeloggte User bestimmt.

BSP:

www.meineurl.com (hier ist der login)
www.meineurl.com/intern (hierhin kommt der user wenn er korrekt eingeloggt hat.)

Wenn nun jemand die Seittennamen und den Unterordnernamen kennt könnte derjenige natürlich einfach daher kommen und z.B. ww.meineurl.com/intern/adminpanel.php eintippen. Und schon wär er da wo er nicht hin darf.

Was gibt es für Varianten das schön zu lösen?

1. Login per HTAcces bzw Passwortgeschütztes Verzeichniss.
+ Problem gelöst.
- Der Benutzer kann seine Logindaten nicht ändern.
- Die Login Seite hat kein "Design" da es keine gibt.

2. Auf jeder Seite prüfen ob die beim Login kreirte Session vorhanden ist.
wenn ja seite ausgeben
wenn nein error

3. Die Verbindung zur Datenbank nur aufbauen, wenn die Session vorhanden ist.
Die Seiten können dann zwar angezeigt werden, allerdings kann man damit nichts anfangen.

3. Wenn die Session nicht vorhanden ist eine sofortige 0Sekunden meta weiterleitung machen, welche aus dem ordner wieder ins root führt.

4. ?
5. ?
6. ?

Weitere Vorschläge/Ideen/Lösungen?
27.07.2007 11:25 Flux ist offline E-Mail an Flux senden Homepage von Flux Beiträge von Flux suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Achtung       Zum Anfang der Seite springen

Variante 2 dürfte die gebräuchliche sein. Dabei prüfst du einfach zu Beginn jeder Seite im geschützten Bereich, ob eine Session besteht und ob sie korrekte Daten beinhaltet.

Weiterleitungen würde ich übrigens nicht mit META-Tags machen, sondern das auf HTTP-Ebene mittels header()-Funktion in PHP machen.

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

27.07.2007 12:46 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
Flux
Junior Member


images/avatars/avatar-2252.gif

Dabei seit: 24.08.2006
Beiträge: 169

Themenstarter Thema begonnen von Flux
      Zum Anfang der Seite springen

ok danke...

also in der art:
php:
1:
2:
3:
4:
5:
6:
if (eingeloggt){
echo "Seiteinhalt";
}
else {
echo "Error";
}


das muss doch irgendwie "schöner" realisierbar sein als mit dem echo oder?

p.s. wenn man nur einen benutzer hat muss die variable gar keinen wert haben sondern einfach vorhanden sein oder?

wenn die Variable einfach einen ungewöhnlichen Namen hat z.B. einen Code reicht es aus, wenn man sie mit if(isset($_Session[xy])) checked oder?
Dann könnte man sich nämlich beim der überprüfung die den connect zur db sparen.

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Flux: 27.07.2007 13:23.

27.07.2007 13:01 Flux ist offline E-Mail an Flux senden Homepage von Flux Beiträge von Flux suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Achtung       Zum Anfang der Seite springen

Zitat:
Original von Flux
das muss doch irgendwie "schöner" realisierbar sein als mit dem echo oder?
Ja, z.B. in der Form

php:
1:
2:
3:
4:
5:
6:
7:
<?php

if ( !$eingeloggt )
    header 'Location: login.php' );

?>
<!-- eigentliche Seite -->


Wie du $eingeloggt nun genau gestaltest, bleibt dir überlassen. Wenn du nur einen Nutzer hast, brauchst du natürlich keine komplexe Nutzerverwaltung mit ACLs in einer Datenbank, dann reicht's auch, da einfach nur eine Variable zu setzen, die beispielsweise das angegebene Passwort enthält.

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

27.07.2007 16:45 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
Flux
Junior Member


images/avatars/avatar-2252.gif

Dabei seit: 24.08.2006
Beiträge: 169

Themenstarter Thema begonnen von Flux
      Zum Anfang der Seite springen

verstehe danke!

sollte man nicht mit exit; noch den nachherstehenden code "verbieten"?

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:

<?php
if ($login!="yes"){
    header("Location: http://www.error.com/"); 
    exit;
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
Hier steht die Seite 
</body>
</html>


p.s. header(); besitzt ja den header schon, weshalb kein <header> da stehen darf. die meta tags etc. und das </header> kommen dann (wie im beispiel hier) einfach darunter oder? ist das richtig so ?

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Flux: 08.08.2007 11:22.

08.08.2007 11:21 Flux ist offline E-Mail an Flux senden Homepage von Flux Beiträge von Flux suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Header bewirkt doch hier eine Umleitung zu der Seite welche angegeben ist,
das heisst der rest der Seite wird garnicht ausgeliefert.

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
08.08.2007 15:24 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » PHP Ordner nach Login schützen.

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH