ich bin Anfänger in Sachen PHP Programmierung und habe mithilfe von einem Tutorial ein Login-Skript etstellt.
Nun wollte ich eure Meinung in Hinsicht auf die Sicherheit des Skriptes wissen..
In meiner Datenbank "benutzer" befindet sich die Tabelle "login" mit diesem Inhalt:
Ich trage in die erstellen.html die Daten ein und lasse diese mit der eintragen.php in die Tabelle schreiben:
nun der eigentliche login mit:
formular.php:
login.php:
checkuser.php:
intern.php
logout.php:
[FONT=Courier New][COLOR=#007700]Vielen dank schonmal im Voraus [/COLOR][/FONT]
Nun wollte ich eure Meinung in Hinsicht auf die Sicherheit des Skriptes wissen..
In meiner Datenbank "benutzer" befindet sich die Tabelle "login" mit diesem Inhalt:
Code:
CREATE TABLE login (id mediumint(7) NOT NULL auto_increment, user VarChar(50) NOT NULL, password VarChar(50) NOT NULL, email varchar(255) NOT NULL default '', firstname varchar(255) NOT NULL default '', lastname varchar(255) NOT NULL default '', PRIMARY KEY (id))";
Code:
<?php $db = "benutzer"; $tb = "login"; // Aufbau der Datenbankverbindung include ("connect.php"); $username = $_POST['user']; $passwort = $_POST['pass']; $email = $_POST['mail']; $vorname = $_POST['vname']; $nachname = $_POST['nname']; $con = mysql_connect ($host, $user, $pass); if (!mysql_select_db ($db, $con)) { die ("Keine Verbindung zur Datenbank"); } $sql = "INSERT INTO $tb (user, password, email, firstname, lastname) VALUES ('". mysql_real_escape_string($username) ."', '". md5 ($passwort)."', '". mysql_real_escape_string($email) ."','". mysql_real_escape_string($vorname) ."', '". mysql_real_escape_string($nachname) ."')"; mysql_query ($sql, $con); if (mysql_affected_rows ($con) > 0) { echo "Benutzer erfolgreich angelegt.<br>\n"; } else { echo "Fehler beim Anlegen der Benutzer.<br>\n"; } ?>
nun der eigentliche login mit:
formular.php:
Code:
<?php session_start (); ?> <html> <head> <title>Login Seite</title> </head> <body> <?php if (isset ($_REQUEST["fehler"])) { echo "Die Zugangsdaten waren ungültig."; } ?> <form action="login.php" method="post"> Name: <input type="text" name="name" size="20"><br> Kennwort: <input type="password" name="pwd" size="20"><br> <input type="submit" value="Login"> </form> </body> </html>
Code:
<?php session_start(); $db = "benutzer"; $tb = "login"; // Zuganglog include ("zugang.php"); // SQL-Injection Schutz $name = $_POST['name']; $pwd = $_POST['pwd']; include ("connect.php"); $con = mysql_connect($host, $user, $pass) or die ("<b>Keine</b> Verbindung zum MySQL-Server möglich."); echo ("Verbindung zum MySQL- Server <b>$host</b> war erfolgreich"); mysql_select_db($db, $con); echo ("Verbindung zur Datenbank <b>$db</b> war erfolgreich!"); $sql = "SELECT * FROM $tb WHERE user= '". mysql_escape_string($name)."' AND password= '".md5 (mysql_escape_string($pwd))."'"; $result = mysql_query($sql, $con); if(mysql_num_rows($result) > 0) { // Benutzerdaten in ein Array auslesen. $data = mysql_fetch_array($result); // Sessionvariablen erstellen und registrieren $_SESSION["user_id"] = $data["id"]; $_SESSION["user_nickname"] = $data["user"]; header('Location: /test/Logins/Login2/intern.php'); exit(); } else { header('Location: /test/Logins/Login2/formular.php?fehler=1'); exit(); } ?>
checkuser.php:
Code:
<?php session_start(); if (!isset ($_SESSION["user_id"])) { header ("Location: /test/Logins/Login2/formular.php"); } ?>
intern.php
Code:
<?php include ("checkuser.php"); ?> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Interner Bereich</title> </head> <body> <table style="text-align: left; width: 555px; height: 32px;" border="1" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="width: 371px;">Benutzer: <?php echo $_SESSION["user_nickname"]; ?> eingeloggt mit User ID: <?php echo $_SESSION["user_id"]; ?></td> <td style="width: 164px;"><a href="logout.php">Logout</a></td> </tr> </tbody> </table> <br> <table style="text-align: left; width: 557px; height: 229px;" border="1" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;">Dir stehen folgende Funktionen zur Verfügung:<br> <br> <a href="benutzer.php">Benutzerverwaltung<br> <br> </td> </tr> </tbody> </table> </body> </html>
Code:
<?php // Wird ausgeführt um mit der Ausgabe des Headers zu warten. ob_start(); session_start(); session_unset(); session_destroy(); header ("Location: /test/Logins/Login2/formular.php"); ob_end_flush(); ?>
Kommentar