Hallo liebe Leute,
ich habe ein kleines Loginscript für meine Seite geschrieben.
Jedoch frage ich mich jetzt, ob es auf diese Art und Weise wirklich sicher ist.
Es wäre echt cool, wenn Ihr mal schnell drüber fliegen könntet und mir vielleicht noch einige Tips/Verbesserungsvorschläge gebt.
Für das Script benutze ich in der Datenbank('test') eine Tabelle 'users' welche die Spalten: 'ID' 'Name' 'Passwort' beinhaltet.
Der code der Loginseite (test.php) sieht so aus:
Ich bin für jede Hilfe dankbar. 
Gruß saio
ich habe ein kleines Loginscript für meine Seite geschrieben.
Jedoch frage ich mich jetzt, ob es auf diese Art und Weise wirklich sicher ist.
Es wäre echt cool, wenn Ihr mal schnell drüber fliegen könntet und mir vielleicht noch einige Tips/Verbesserungsvorschläge gebt.
Für das Script benutze ich in der Datenbank('test') eine Tabelle 'users' welche die Spalten: 'ID' 'Name' 'Passwort' beinhaltet.
Der code der Loginseite (test.php) sieht so aus:
PHP-Code:
<?php
error_reporting(E_ALL);
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', 'test');
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error()."\n");
mysql_select_db(MYSQL_DATABASE) OR die("Datenbank nicht ausgewählt:<br />=> ".mysql_error()."\n");
//F U N K T I O N E S D E F I N I T I O N E N - S T A R T
function array_stripslashes(&$var)
{
if(is_string($var)) {
$var = stripslashes($var);
} else {
if(is_array($var)) {
foreach($var AS $key => $value) {
array_stripslashes($var[$key]);
}
}
}
}
function login($name, $pass)
{
$sql = "SELECT
Password
FROM
users
WHERE
Name = '".$name."';";
$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);
mysql_free_result($result);
if($pass != "" AND md5($pass) == $row['Password']){
return true;
}else{
return false;
}
}
//F U N K T I O N E S D E F I N I T I O N E N - E N D E
if(isset($_GET['section']) AND ("admin" == $_GET['section'])) {
session_start();
if(!isset($_SESSION['IP'])) {
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
}
if($_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {
die("Sie dürfen keine Sessions von anderen Usern verwenden!!!");
}
}
if(get_magic_quotes_gpc()) {
array_stripslashes($_GET);
array_stripslashes($_POST);
array_stripslashes($_COOKIE);
}
if(isset($_GET['action']) AND ("logout" == $_GET['action'])){
unset($_SESSION['ID']);
unset($_SESSION['IP']);
session_destroy();
echo "Ausgeloggt";
echo "</p>\n";
echo "<a href=\"test.php?section=admin\">Einloggen</a><br />\n";
} else {
if(isset($_POST['UserID']) AND "" == $_POST['UserID']) {
echo "<p>\n";
echo " Bitte geben Sie einen Benutzernamen ein.\n";
echo "</p>\n";
echo "<a href=\"test.php?section=admin\">Einloggen</a><br />\n";
} else {
if(isset($_POST['UserID'], $_POST['Password'])){
if(login(addslashes($_POST['UserID']), addslashes($_POST['Password']))){
$_SESSION['ID'] = $_POST['UserID'];
}
}
if(isset($_SESSION['ID'])) {
echo "<p>\n";
echo "Willkommen im Adminbereich <br />\n";
echo " <a href=\"test.php?section=admin&action=logout&".SID."\">Ausloggen</a><bt />\n";
echo "</p>\n";
} else {
if(isset($_POST['submit'])) {
echo "<p>\n";
echo " Ungültiges Password.\n";
echo "</p>\n";
}
echo "<form action=\"test.php?section=admin\" method=\"post\" class=\"formular\">\n";
echo " <p>\n";
echo " Adminbereich\n";
echo " </p>\n";
echo "<input type=\"text\" size=\"10\" name=\"UserID\" id=\"name\">\n<br />";
echo "<input size=\"10\" type=\"password\" name=\"Password\" id=\"password\" />\n<br />";
echo "<input type=\"submit\" name=\"submit\" value=\"Login\" />\n";
echo "</form>\n";
}
}
}
?>

Gruß saio
Kommentar