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:
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();
?>

Comment