Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- include'setup.php';
- if(!isset($_COOKIE['sess_id']) || strlen($_COOKIE['sess_id']) != SESS_LENGTH)
- {
- // Wenn keine Session existiert -> erstellen
- $pattern = 'qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJKLYXCVBNM0123456789';
- $session = '';
- while(strlen($session) < SESS_LENGTH)
- {
- $session .= $pattern[rand(0, strlen($pattern) - 1)];
- }
- setcookie('sess_id', $session, time()+(60*60*24));
- }
- ?>
- <!DOCTYPE HTML>
- <html>
- <head>
- <title>Mein CP 0.1 Alpha</title>
- <link rel="stylesheet" type="text/css" href="style.css">
- </head>
- <body>
- <div id="wrapper">
- <div id="header"> </div>
- <div id="navigation">
- <ul>
- <li><a href="index.php?page=index">Home</a></li>
- <li><a href="index.php?page=changepw">Passwort ändern</a></li>
- <li><a href="index.php?page=logout">Ausloggen</a></li>
- </ul>
- </div>
- <div id="content">
- <div id="content-top"> </div>
- <div id="content-mid">
- <?php
- $sql = 'SELECT * FROM `sessions` WHERE `session` = "'. mysql_real_escape_string($_COOKIE['sess_id']) .'";';
- $query = mysql_query($sql);
- if(mysql_num_rows($query))
- {
- // Session existiert -> Benutzer eingeloggt
- // Nun nach "Sicherheitssachen" abfragen
- $session = mysql_fetch_assoc($query);
- if($session['ip'] == $_SERVER['REMOTE_ADDR'] && $session['useragent'] == $_SERVER['HTTP_USER_AGENT'] && $session['hostname'] == gethostbyaddr($_SERVER['REMOTE_ADDR']))
- {
- // Sicherheitsdetails stimmen -> Benutzer eingeloggt
- $player = new Player($session['username']);
- if(md5($player->getPassword()) == $session['password'])
- {
- $sql = 'SELECT COUNT(id) AS `count` FROM `failedlogins` WHERE `user` = "'. mysql_real_escape_string($player->getName()) .'";';
- $query = mysql_query($sql);
- $failedlogins = mysql_fetch_assoc($query);
- $page = (isset($_GET['page']) ? $_GET['page'] : 'index');
- $page = str_replace('/', '', $page);
- $page = str_replace('\\', '', $page);
- $path = 'pages/'. $page .'.php';
- if(file_exists($path))
- include $path;
- else
- include 'pages/index.php';
- }
- else
- {
- // Passwort geändert
- echo'<h2>Hinweis</h2>';
- echo'Dein Passwort unterscheidet sich von dem deiner Session.<br />
- Aus Sicherheitsgründen wirst du nun ausgeloggt.';
- $sql = 'DELETE FROM `sessions` WHERE `id` = '. $session['id'] .';';
- mysql_query($sql);
- }
- }
- else
- {
- // Sicherheitsdetails geändert -> Benutzer war offline ( -> IP geändert ), Browser gewechselt, Session-Hijacking (?)
- echo'<h2>Hinweis</h2>';
- echo'Wir konnten dich nicht als den Benutzer identifizieren, als den du dich eingeloggt hat. Vermutlich hat sich deine IP geändert, du bist von einem anderem PC eingeloggt oder ähnliches.<br />
- Aus Sicherheitsgründen wirst du nun ausgeloggt.';
- $sql = 'DELETE FROM `sessions` WHERE `id` = '. $session['id'] .';';
- mysql_query($sql);
- }
- }
- else
- {
- // Session existiert nicht -> Benutzer nicht eingeloggt
- if(isset($_POST['submit']))
- {
- // Loginformular abgesendet
- $player = new Player($_POST['username']);
- if($player->exists() == false)
- {
- // Benutzername falsch
- echo'<b>Der eingegebene Benutzer wurde nicht gefunden</b><br /><i>Bitte prüfe, ob du dich evtl. vertippt hast</i>';
- echo'<meta http-equiv="refresh" content="2; URL=index.php">';
- }
- else if($player->getPassword() == $_POST['password'])
- {
- // Benutzer existiert + Passwort richtig
- echo'<b>Du hast dich erfolgreich eingeloggt.</b><br /><i>Bitte warte, du wirst weitergeleitet.</i>';
- echo'<meta http-equiv="refresh" content="2; URL=index.php">';
- $sql = 'INSERT INTO `sessions` (`id`,`session`,`ip`,`useragent`,`hostname`,`username`,`password`) VALUES (null, "'. mysql_real_escape_string($_COOKIE['sess_id']) .'", "'. mysql_real_escape_string($_SERVER['REMOTE_ADDR']) .'", "'. mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']) .'", "'. mysql_real_escape_string(gethostbyaddr($_SERVER['REMOTE_ADDR'])) .'", "'. mysql_real_escape_string($_POST['username']) .'", "'. mysql_real_escape_string(md5($_POST['password'])) .'");';
- mysql_query($sql);
- }
- else
- {
- // Benutzer existiert, Passwort falsch
- echo'<b>Das Passwort stimmt nicht überein</b><br /><i>Bitte prüfe, ob du dich evtl. vertippt hast</i>';
- echo'<meta http-equiv="refresh" content="2; URL=index.php">';
- $sql = 'INSERT INTO `failedlogins` (`id`,`user`,`ip`,`hostname`,`useragent`,`password`) VALUES (null, "'. mysql_real_escape_string($_POST['username']) .'", "'. mysql_real_escape_string($_SERVER['REMOTE_ADDR']) .'", "'. mysql_real_escape_string(gethostbyaddr($_SERVER['REMOTE_ADDR'])) .'", "'. mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']) .'", "'. mysql_real_escape_string($_POST['password']) .'");';
- mysql_query($sql);
- }
- }
- else
- {
- // Loginformular nicht abgesendet
- echo'Um das CP nutzen zu können musst du dich mit deinen Logindaten einloggen.';
- echo'<form action="index.php" method="post">';
- echo'<label>Benutzername</label><label><input type="text" name="username" /></label><br />';
- echo'<label>Passwort</label><label><input type="password" name="password" /></label><br />';
- echo'<label> </label><label><input type="submit" name="submit" value="Login" /></label><br />';
- echo'</form>';
- }
- }
- ?>
- </div>
- <div id="content-bot"> </div>
- </div>
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement