/* * Dieses Script sollte in jedem PHP Script als erstes eingebunden werden um einen unerlaubten Zugriff zu vermeiden. * include("includes/start.php");?> */ session_start(); setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); include($_SERVER["DOCUMENT_ROOT"]."/admin/includes/config.cms.php"); // Überprüfe auf den 'Angemeldet bleiben - Cookie // Login Script von: https://www.php-einfach.de/experte/php-codebeispiele/loginscript/angemeldet-bleiben/ if( !isset($_SESSION['userid']) && isset($_COOKIE['identifier']) && isset($_COOKIE['securitytoken'])) { $identifier = $_COOKIE['identifier']; $securitytoken = $_COOKIE['securitytoken']; $db_name = "../database.db"; //$db_table = "securitytokens"; $db = new SQLite3($db_name); $results = $db->query("SELECT * FROM securitytokens WHERE identifier = '$identifier'"); $row = $results->fetchArray(); if ($row == false) { die( "kein Datensatz" ); } if( $securitytoken !== $row['securitytoken']) { die('Ein vermutlich gestohlener Security Token wurde identifiziert'); } else { //Token war korrekt //Setze neuen Token $neuer_securitytoken = random_string(); $db->exec("UPDATE securitytokens SET securitytoken = '$neuer_securitytoken' WHERE identifier = $identifier"); setcookie("identifier",$identifier,time()+(3600*24*365)); //1 Jahr Gültigkeit setcookie("securitytoken",$neuer_securitytoken,time()+(3600*24*365)); //1 Jahr Gültigkeit //Logge den Benutzer ein $_SESSION['userid'] = $row['user_id']; } } if(!isset($_SESSION['userid'])) { header("Location:/admin/login.php"); // die("keine Berechtigung / access denied"); } function random_string() { if(function_exists('random_bytes')) { $bytes = random_bytes(16); $str = bin2hex($bytes); } else if(function_exists('openssl_random_pseudo_bytes')) { $bytes = openssl_random_pseudo_bytes(16); $str = bin2hex($bytes); } else if(function_exists('mcrypt_create_iv')) { $bytes = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM); $str = bin2hex($bytes); } else { //Bitte euer_geheim_string durch einen zufälligen String mit >12 Zeichen austauschen $str = md5(uniqid('345dsfd2342qfwefa34e224', true)); } return $str; } ?>
|
|
||||||||||||||||||||||||||
|