Advertisement
Guest User

Public-Coding by tionsys.de #02

a guest
Oct 17th, 2012
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.74 KB | None | 0 0
  1. <?php
  2.   include'setup.php';
  3.  
  4.   if(!isset($_COOKIE['sess_id']) || strlen($_COOKIE['sess_id']) != SESS_LENGTH)
  5.   {
  6.     // Wenn keine Session existiert -> erstellen
  7.     $pattern = 'qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJKLYXCVBNM0123456789';
  8.    
  9.     $session = '';
  10.     while(strlen($session) < SESS_LENGTH)
  11.     {
  12.       $session .= $pattern[rand(0, strlen($pattern) - 1)];
  13.     }
  14.    
  15.     setcookie('sess_id', $session, time()+(60*60*24));
  16.   }
  17. ?>
  18. <!DOCTYPE HTML>
  19. <html>
  20.   <head>
  21.     <title>Mein CP 0.1 Alpha</title>
  22.     <link rel="stylesheet" type="text/css" href="style.css">
  23.   </head>
  24.   <body>
  25.     <div id="wrapper">
  26.       <div id="header">&nbsp;</div>
  27.      
  28.       <div id="navigation">
  29.         <ul>
  30.           <li><a href="index.php?page=index">Home</a></li>
  31.           <li><a href="index.php?page=changepw">Passwort &auml;ndern</a></li>
  32.           <li><a href="index.php?page=logout">Ausloggen</a></li>
  33.         </ul>
  34.       </div>
  35.      
  36.       <div id="content">
  37.         <div id="content-top">&nbsp;</div>
  38.        
  39.         <div id="content-mid">
  40.           <?php
  41.             $sql = 'SELECT * FROM `sessions` WHERE `session` = "'. mysql_real_escape_string($_COOKIE['sess_id']) .'";';
  42.             $query = mysql_query($sql);
  43.             if(mysql_num_rows($query))
  44.             {
  45.               // Session existiert -> Benutzer eingeloggt
  46.               // Nun nach "Sicherheitssachen" abfragen
  47.               $session = mysql_fetch_assoc($query);
  48.              
  49.               if($session['ip'] == $_SERVER['REMOTE_ADDR'] && $session['useragent'] == $_SERVER['HTTP_USER_AGENT'] && $session['hostname'] == gethostbyaddr($_SERVER['REMOTE_ADDR']))
  50.               {
  51.                 // Sicherheitsdetails stimmen -> Benutzer eingeloggt                
  52.                 $player = new Player($session['username']);
  53.                 if(md5($player->getPassword()) == $session['password'])
  54.                 {
  55.                   $sql = 'SELECT COUNT(id) AS `count` FROM `failedlogins` WHERE `user` = "'. mysql_real_escape_string($player->getName()) .'";';
  56.                   $query = mysql_query($sql);
  57.                   $failedlogins = mysql_fetch_assoc($query);
  58.                  
  59.                   $page = (isset($_GET['page']) ? $_GET['page'] : 'index');
  60.                   $page = str_replace('/', '', $page);
  61.                   $page = str_replace('\\', '', $page);
  62.                   $path = 'pages/'. $page .'.php';
  63.                   if(file_exists($path))
  64.                     include $path;
  65.                   else
  66.                     include 'pages/index.php';
  67.                 }
  68.                 else
  69.                 {
  70.                   // Passwort geändert
  71.                   echo'<h2>Hinweis</h2>';
  72.                   echo'Dein Passwort unterscheidet sich von dem deiner Session.<br />
  73.                  Aus Sicherheitsgr&uuml;nden wirst du nun ausgeloggt.';
  74.                   $sql = 'DELETE FROM `sessions` WHERE `id` = '. $session['id'] .';';
  75.                   mysql_query($sql);
  76.                 }
  77.               }
  78.               else
  79.               {
  80.                 // Sicherheitsdetails geändert -> Benutzer war offline ( -> IP geändert ), Browser gewechselt, Session-Hijacking (?)
  81.                 echo'<h2>Hinweis</h2>';
  82.                 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 &auml;hnliches.<br />
  83.                Aus Sicherheitsgr&uuml;nden wirst du nun ausgeloggt.';
  84.                 $sql = 'DELETE FROM `sessions` WHERE `id` = '. $session['id'] .';';
  85.                 mysql_query($sql);
  86.               }
  87.             }
  88.             else
  89.             {
  90.               // Session existiert nicht -> Benutzer nicht eingeloggt
  91.              
  92.               if(isset($_POST['submit']))
  93.               {
  94.                 // Loginformular abgesendet
  95.                 $player = new Player($_POST['username']);
  96.                 if($player->exists() == false)
  97.                 {
  98.                   // Benutzername falsch
  99.                   echo'<b>Der eingegebene Benutzer wurde nicht gefunden</b><br /><i>Bitte pr&uuml;fe, ob du dich evtl. vertippt hast</i>';
  100.                   echo'<meta http-equiv="refresh" content="2; URL=index.php">';
  101.                 }
  102.                 else if($player->getPassword() == $_POST['password'])
  103.                 {
  104.                   // Benutzer existiert + Passwort richtig
  105.                   echo'<b>Du hast dich erfolgreich eingeloggt.</b><br /><i>Bitte warte, du wirst weitergeleitet.</i>';
  106.                   echo'<meta http-equiv="refresh" content="2; URL=index.php">';
  107.                   $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'])) .'");';
  108.                   mysql_query($sql);
  109.                 }
  110.                 else
  111.                 {
  112.                   // Benutzer existiert, Passwort falsch
  113.                   echo'<b>Das Passwort stimmt nicht &uuml;berein</b><br /><i>Bitte pr&uuml;fe, ob du dich evtl. vertippt hast</i>';
  114.                   echo'<meta http-equiv="refresh" content="2; URL=index.php">';
  115.                  
  116.                   $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']) .'");';
  117.                   mysql_query($sql);
  118.                 }
  119.               }
  120.               else
  121.               {
  122.                 // Loginformular nicht abgesendet
  123.                 echo'Um das CP nutzen zu k&ouml;nnen musst du dich mit deinen Logindaten einloggen.';
  124.                 echo'<form action="index.php" method="post">';
  125.                   echo'<label>Benutzername</label><label><input type="text" name="username" /></label><br />';
  126.                   echo'<label>Passwort</label><label><input type="password" name="password" /></label><br />';
  127.                   echo'<label>&nbsp;</label><label><input type="submit" name="submit" value="Login" /></label><br />';
  128.                 echo'</form>';
  129.               }
  130.             }
  131.           ?>
  132.         </div>
  133.        
  134.         <div id="content-bot">&nbsp;</div>
  135.       </div>
  136.     </div>
  137.   </body>
  138. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement