Webseite "gehackt" wie weiter?

nun im Moment ist es einfach so, solange man den Browser offen hat können sich 2 User einloggen. Schiesst jedoch der 1. eingeloggte User den Browser so ist er ausgeloggt, da die cookie ID beim wiederöffnen nicht mehr übereinstimmt.

Nun möchte ich aber das dies auch passiert wenn beide eingeloggt sind, also sofort. wie kann ich den das am besten machen?
 
So, nun habe ich das ganze mal etwas ausgebaut. Bitte schaut es euch mal an und sagt mit ob das so OK ist oder ob ich da noch was verbessern sollte...

Wie ich das mit dem 2 user (angenommen gleicher browser und gleiches OS so wie Einstellungen) ausloggen astellen soll ist mir noch nicht ganz klar, da wäre ich ev um ein beispiel froh.

PHP:
session_start() ; 
include("php/connect.php") ;
$idonline = $_SESSION["user_id"] ;
if($idonline)
		{
$gesperrt = "SELECT verwarnt, level FROM benutzer WHERE id = '".mysql_real_escape_string($idonline)."'" ; 
	$gesperrt = mysql_query($gesperrt);
while($row = mysql_fetch_object($gesperrt))
{
	$verwarnt = $row->verwarnt ; 
	$level2 = $row->level ; 
	if($level2 == "1" or $level2 =="2" or $level2 == "3" or $level2 == "4")
	{
		echo "" ; 
	} else {
	if($verwarnt == 3)
	{
$loeschen = "DELETE FROM sessions WHERE  user = '".mysql_real_escape_string($idonline)."'";
$loesch = mysql_query($loeschen) ; 
session_destroy() ; 
header("Location: index.php?fehler=gesperrt");
		exit() ;


	}}
	}
		}
if(!isset($_SESSION["user_id"]))
{
		$cookieak = $_COOKIE["marcovolt-ch"] ; 
if ($_COOKIE["marcovolt-ch"])
	{
	$accesssql = "SELECT user, nickname, vorname, nachmane, level FROM sessions WHERE cookieid = '".mysql_real_escape_string($cookieak)."'" ;
	$result = mysql_query ($accesssql); 
	if (mysql_num_rows ($result) == 1) 
{ 
		 $browser = $_SERVER["HTTP_USER_AGENT"].":".
 $_SERVER["HTTP_ACCEPT"].":".
 $_SERVER["HTTP_ACCEPT_LANGUAGE"].":".
 $_SERVER["HTTP_ACCEPT_CHARSET"].":".
 $_SERVER["HTTP_ACCEPT_ENCODING"].":" ; 
$data = mysql_fetch_array ($result); 
$_SESSION["user_id"] = $data["user"] ;
$_SESSION["user_nickname"] = $data["nickname"] ;
$_SESSION["user_vorname"] = $data["vorname"] ;
$_SESSION["user_nachnamen"] = $data["nachname"] ;
$_SESSION["admin_level"] = $data["level"] ;
$_SESSION["user_browser"] = $browser ; 
}
	} }
 $browser = $_SERVER["HTTP_USER_AGENT"].":".
 $_SERVER["HTTP_ACCEPT"].":".
 $_SERVER["HTTP_ACCEPT_LANGUAGE"].":".
 $_SERVER["HTTP_ACCEPT_CHARSET"].":".
 $_SERVER["HTTP_ACCEPT_ENCODING"].":" ; 

if($_SESSION["user_browser"] != $browser)
{
$loeschen = "DELETE FROM sessions WHERE  user = '".mysql_real_escape_string($idonline)."'";
$loesch = mysql_query($loeschen) ; 
session_destroy() ; 
header("Location: index.php");
exit() ;

}
if($_SESSION["user_id"])
{
... internet bereich


Edit:
zum nicht-mehrere-user ist mir nun doch noch was eingefallen...
beim login wird ja ein cookie erstellt, welcher code auch in der DB abgelegt ist, für autologin.
Nun habe ich diesen code eifach auch in die session gespeichert und sobald sich diese ändert fliegt der user raus
 
Zuletzt bearbeitet:
nun sieht doch alles schon viel besser aus..
Die Login sperre scheint wohl wirklich gut zu sein, habe zur sicherheit eingestellt das ich ein Mail bekomme wenn sich jemand 5X falsch einloggt. Und siehe da, schon der erste versuch...

Nun habe ich mir heute Nacht nochmals Gedanken über den Browser check gemacht. Das ganze geht ja auch nur wenn der User dann auch Online ist. Was ist z.B. wenn der User offline ist? Die Sessions bleiben ja auf dem Server noch längere Zeit bestehen...

Müsste ich dies auch irgend wie unterdrücken? Falls ja, wie?
 
Zurück