Sicherer code?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
account
email
fehlversuch
informiert exit
login
member
miteinander
parameter
pawort
result
session
set
sperre
update
username
violation
-
Hi,
wenn ihr mal kurz Zeit habt, k?nnt ihr mal schauen ob hier irgendwelche Sicherheitsl?cken findet bei meinem Login?
<?php
//Session Start
session_start();
//Hackerschutz
$_SESSION['goodlogin']="false";
if ( $_SESSION['username'] or
!isset($username) or
$_POST['username'] &&
!$_GET['username'] &&
!$_COOKIE['username'])
{
$_SESSION['goodlogin']="true";
}
else
{
#mail("admin@example.com", "M?glicher H?ckerangriff", $_SERVER['REMOTE_ADDR']);
echo 'Security violation, admin has been alerted. <br> Sicherheitsverletzung. Der Admin wurde informiert.';
exit;
}
if($_SESSION['goodlogin']=="true")
{
//Login
//Session ID an Cookie ?bermitteln
$sessionid=session_id();
if(!isset($_COOKIE['sessionid2']))
{
setcookie("sessionid2",$sessionid, time() + 14 * 24 * 3600);
}
//Datenbank-Verbindung aufbauen
include("../connect.php");
//Benutzerdaten ?berpr?fen
//Variablen bestimmen
$username=$_POST['username'];
$passwortmd5=md5($_POST['passwort']);
$abfragen = mysql_query( "select id,username,passwort,sessionid,aktiviert from members WHERE username = '$username'");
while ($row = mysql_fetch_row($abfragen))
{
if($username == $row[1] && $passwortmd5 == $row[2] && sessionid2 == $row[3])
{
//Testen ob Account aktiviert ist
if($row[4]==1)
{
echo'Du hast dich erfolgreich eingeloggt';
//Parameter definieren
$_SESSION['username'] = $_POST['username'];
$_SESSION['passwort'] = $_POST['passwortmd5'];
$_SESSION['id'] = $row[0];
//Sessionid an Datenbank weitergeben
//Loginversuche zur?cksetzen
$update=mysql_query("Update members set sessionid='$sessionid',loginversuche='0' where username='$username'");
} //Ende if account aktiviert
else
{
echo"<br>Dein Account ist derzeit nicht aktiv.
<br>Entweder hast du den Aktivierungskey deiner Email noch nicht ausgef?hrt oder hattest zu viele Fehlversuche beim Login.
<br> Bei Fragen wende dich bitte an admin@example.com";
}
} //ende if Login Ok
//Fehlerausgabe
else
{
echo'Leider stimmen deine Benutzerdaten nicht miteinander ?berein. Vertippt??';
//Loginversuche erh?hen
$update=mysql_query("Update members set loginversuche=loginversuche+1 where username='$username'");
//Loginversuche wiedergeben
$result = mysql_query( "select loginversuche from members WHERE username = '$username'");
while ($row = mysql_fetch_row($result))
{
echo "Loginfehlversuche: $row[0] <br> Bei mehr als 3 Loginversuchen wird ihr Account gesperrt<br>";
//Account sperren
if($row[0]>3)
{
echo"Ihr Account wurder gesperrt!";
$update=mysql_query("Update members set aktiviert=0 where username='$username'");
}
} //ende while
} //ende else logindaten nicht ok
} //ende while loginabfragen
} //Ende if goodlogin
if(!$_SESSION['goodlogin']=="true")
{
echo'Keine Macht den Hackern!';
}
?>
Danke im voraus
Laurenz -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage