IT-Academy Logo
Sign Up Login Help
Home - Programmieren - PHP - PHP: Login-Script (Sicherheit mit Sessions)



PHP: Login-Script (Sicherheit mit Sessions)

Angenommen Sie möchten erreichen, dass ein Teil Ihrer Webseite nicht jedem Besucher, sondern nur einem bestimmten Personenkreis zur Verfügung stehen. Sie schaffen also einen Login-Bereich, bei dem sich jeder Besucher Iherer Seite anmelden muss...


Autor: Kilian Schwarzentruber (Lux)
Datum: 26-12-2005, 13:46:57
Referenzen: keine
Schwierigkeit: Fortgeschrittene
Ansichten: 100592x
Rating: 7 (3x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



PHP Login-Script (Sicherheit mit Sessions)

Allgemein

Angenommen Sie möchten erreichen, dass ein Teil Ihrer Webseite nicht jedem Besucher, sondern nur einem bestimmten Personenkreis zur Verfügung stehen. Sie schaffen also einen Login-Bereich, bei dem sich jeder Besucher Iherer Seite anmelden muss.

Durch den Einstaz von Sessions verhindern Sie nun, dass ein unerwünschter Besucher einfach direkt die Folgeseite aufruft und so Ihren Passwortschutz umgeht. Ihr Login-Bereich könnte ungefähr so aussehen:


*********************************************************************

LOGIN-Bereich

Benutzername:
Passwort:
*********************************************************************

Sollte jemand versuchen, mit einer fremden Session-Id oder durch direkten Aufruf der Seite sessoin_check.php Zugang zu Ihrer Seite zu erlangen, wird er durch die folgenen Anweisung zur eigentlichen Startseite zurückgeleitet, um ein korrektes LOGIN durchzuführen:

Header("Location:index.php");
Die eröffnete Session wird danach gelöscht und das Programm bricht an dieser Stelle durch die Funktion "exit();" ab.

Am Schluss müssen sie den Benutzernamen und das Passwort noch auf Gültigkeit prüfen. Es empfiehlt sich, dieses Problem mit einer Datenbank zu lösen, wenn sie mehrere Persoen mit unterschiedlichen Passwörtern Zugang zu Ihrer Seite gewähren möchten.

Die Sicherheit Ihrer Webseite ist beim Einsatz von Sessions nur dann gefährdet, wenn jemand die aktuelle Session-Id errät oder Zugriff auf Ihren Session-Ordner erlangt. Insbesondere bei kommerziellen Seiten sollte ein solcher Zugriff ausgeschlssen sein und der Session-Ordner auch nicht unbedingt den Standartnamen besitzen und im Standartverzeichnis (z.b C:\...\tmp) abgelegt sein. Wenn Sie dann noch den Variablenamen für die Session-ID so wählen, dass er schwer zu erraten ist, haben Sie schon ein gewisses Mass an Sicherheit erreicht!

Es folgt der Quellcode der beiden PHP-Dateien.

Quell-Code

login.php

<?php
	session_start();
?>

<?php $_SESSION["s_id"] = session_id(); echo("<h2>LOGIN-Bereich</h2>"); echo (" <form action='session_check.php' method='POST'> <table> <tr> <td>Benutzername:</td> <td><input type='text' name='benutzer' size='30' maxlength='30'></td> </tr> <tr> <td>Passwort:</td> <td><input type='password' name='password' size='10' maxlength='10'></td> </tr> <tr> <td> </td> <td><input type='submit' value=' OK '></td> </tr> </table> </form> "); ?>

check_session.php

<?php
	session_start();

	if($_SESSION[s_id]!=session_id())
	{
		session_destroy();
		Header("Location:index.php");
		exit();
	}
	$_SESSION["benutzer"]=$_POST[benutzer];
	$_SESSION["password"]=$_POST[password];
	$ID=$_SESSION[s_id];

	if( (empty($_SESSION[benutzer]))||(empty($_SESSION[password])) )
	{
		echo("Bitte vollständige Angaben machen!<br>");
		echo("<a href='login.php'>Zurück zur Login-Seite!</a>");
	}
	else
	{
		// Auf Passwortkorrektheit prüfuen
	}
?>

Quelle: PHP5, Das Einsteigerseminar; ISBN: 3-8266-7283-6



paedubucher
Professonial
Beitrag vom:
25-05-2007, 21:32:49

PHP5, Das Einsteigerseminar

Das referenzierte Buch (PHP5, Das Einsteigerseminar) ist überhaupt nicht das Gelbe vom Ei! Es kostet zwar nur 10 €, ist aber sein Geld nicht einmal Wert. Das Buch soll ja angeblich PHP5 beschreiben. Toll, die darin beschriebene OOP-Syntax funktioniert aber nur mit PHP4. IMHO wollte da jemand so schnell wie möglich ein Buch auf den Markt bringen:

"uff PHP5 iss da! L0s, wir m4chn schnell e1n 1337-Buch darüb0r! Erst0r!!!!111elf hooray :))))"

Das darin nicht vermittelte PHP-KnowHow wird versucht, mit schlecht vermitteltem HTML-Wissen zu kompensieren. Und so ein Buch muss man dann auch noch von einem selbsternannten "Berufsbildungszentrum" (sprich: Berufsschule) erwerben, als Unterrichtslektüre. In meinem Fall ist das Buch im Unterricht gar nicht besonders negativ aufgefallen, da die Lehrperson von ungefähr gleicher Inkompetenz war wie der Autor dieses Buchs.

<Troll>
Was für ein Scheiss-Buch :-)
</Troll>

Wer PHP mit möglichst geringem finanziellen Aufwand erlernen möchte, dem empfehle ich das hier: http://ch2.php.net/manual/de/index.php

... musste das nur loswerden!

-----------------------------------------------------


SFiL
Junior-Member
Beitrag vom:
27-02-2006, 16:44:48

ein paar mängel

ich speichere meine passwörter immer im klartext in die session, wofür gibts denn auch md5 oder andere verschlüsselungstechniken :)
Ich finde es schade, dass das System nicht einmal richtig programmiert wurde, mit der datenbank dabei, abfrage des passwortes, usw.
deshalb kommt mir dieses howto nur wie ein halbes vor. aber das weiß der autor bestimmt auch selber.

-----------------------------------------------------


SPAHRSON
Rookie
Beitrag vom:
09-02-2006, 16:06:10

oOo Sessiondaten

Nun ja, ich bin mir zimlich sicher, dass es sehr ungesund werden kann, wenn man Passwort und/oder Username in einer Session speichert. Solche Daten haben meiner Meinung nach in einer Session nichts zu suchen!!

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06245
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1150
Comments: 0