thescream92
Neues Mitglied
Hiho, ich versuche gerade einen perfekten Login zu schreiben, bei dem SQL-Injections nichts tun können und so... Falls ihr einen Trick findet die Seite zu überlisten oder irgendein weiteres Sicherheitsloch, dann schreibt das bitte ;)
index.php
cfg.php
index.php
PHP:
<?php
if (!include('./cfg.php')) {
echo "<center>Die Server sind zurzeit überlastet!<br /> Bitte versuchen Sie es später erneut. <br /><br />Vielen Dank für ihr Verständnis!</center>";
exit;
}
?>
<html>
<head>
<title>Godrax Webinterface</title>
<style>
.headline {
font-family: Verdana;
font-size: 15;
}
.text {
font-family: Verdana;
font-size: 12;
}
.input {
border: 1px solid #949494;
font-family: Verdana;
}
.copyright {
font-family: Verdana;
font-size: 10;
}
</style>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
if (!isset($_SESSION['login_fail'])) {
$_SESSION['login_fail'] = 0;
}
if ($_SESSION['login_fail'] >= 5) {
echo '<center>Sie haben jetzt fünf mal erfolglos versucht sich einzuloggen. Ihr Computer wurde deswegen aus Sicherheitsgründen für 20 Minuten für den Login gesperrt.</center>';
exit;
}
if (!isset($_GET['go'])) {
echo '<table border="0" width="100%" height="100%"><tr><td valign="middle">
<form name="login" action="./index.php?content=login&go" method="post">
<table width="450" height="250" style="border: 1px solid #bababa" align="center" cellspacing="0" cellpadding="0">
<tr height="30">
<td style="background-color: #bababa" class="headline">Webinterface</td>
</tr>
<tr height="220">
<td valign="middle" style="background-color: #white">
<table align="center" cellspacing="2" cellpadding="2" class="text">';
if (isset($_GET['fail'])) {
echo '<tr><td></td><td><font color="red">-Login fehlgeschlagen</font><br><br></td></tr>';
}
echo'<tr>
<td>E-Mail</td><td><input class="input" type="text" name="mail"></td>
</tr>
<tr>
<td>Passwort</td><td><input class="input" type="password" name="passwort"></td>
</tr>
<tr>
<td>Optionen</td><td><input type="submit" value="Login" class="input"> <input type="reset" value="Reset" class="input"></td>
</tr>
<tr>
<td>Verfügbare Versuche</td><td>';
if (isset ($_SESSION['login_fail'])){ echo 5-$_SESSION['login_fail']; }
else { echo '5'; }
echo'</td>
</tr>
</table>
</td>
</tr>
</table>
<table width="450" align="center" cellspacing="0" cellpadding="0" class="copyright"><tr><td>Copyright by mir</td></tr></table>
</form>
</td></tr></table>';
}
else {
if (!empty($_POST['passwort']) && isstandardusername($_POST['passwort']) && !empty($_POST['mail']) && isstandardusername($_POST['mail'])) {
$post_mail = $_POST['mail'];
$post_pass = md5($_POST['passwort']);
$gefunden = select("SELECT COUNT(*) AS anzahl FROM user WHERE mail='$post_mail' and password='$post_pass'");
if ($gefunden['anzahl'] == 1) {
echo "<br /><br /><br /><br /><center>Erfolgreich eingeloggt!</center>";
$_SESSION['login_fail'] = 0;
weiterleitung ('./logged/');
}
else {
$_SESSION['login_fail'] = $_SESSION['login_fail']+1;
header('location:./index.php?fail');
}
}
else {
$_SESSION['login_fail'] = $_SESSION['login_fail']+1;
header('location:./index.php?fail');
}
}
?>
</body>
</html>
cfg.php
PHP:
<?php
// ---------------------------- MySQL
$host_sql = "localhost";
$user_sql = "XXXX";
$pass_sql = "XXXX";
if (!$link = mysql_connect($host_sql, $user_sql, $pass_sql)){
echo ("MySQL Connection Error");
die;
}
if (!mysql_select_db("godrax_interface")){
echo ("MySQL DB selection Error");
die;
}
function querry ($query){
if(empty($query)) return 0;
if (!mysql_query($query)){
return 0;
}
return 1;
}
function select ($query){
if(empty($query)) return false;
$result = mysql_query($query) or die('Query failed!');
$result = mysql_fetch_assoc($result);
return $result;
}
// ---------------------------- MySQL ENDE
function isstandardusername ($string){
if (preg_match("/^[A-Z0-9a-z-_]*$/", $string)){
return 1;
}
else {
return 0;
}
}
function weiterleitung ($seite, $dauer_func='1500') {
echo "
<script type='text/javascript'>
window.setTimeout('set()',".$dauer_func.");
function set() {
location.href='".$seite."';
return true;
}
</script>
";
return 1;
}
session_start();
?>