PHP Session Timeout nach Source IP gefiltert
Hallo Zusammen,
ich betreibe eine Webseite die von externen und internen Benutzern genutzt wird.
Die Webseite nutzt PHP Sessions. Momentan laufen die Session nicht ab bzw. enden erst nach
einem Tag. Somit muss sich der Benutzer am nächsten Tag neu anmelden.
Das ist auch soweit ok für den internen Bereich aber für extern eher nicht.
Nun die Frage:
Kann man ein Session Timeout definieren der nur bei externen Benutzern greift?
Die internen Benutzer sollen weiterhin Tagessession haben, sodass sie erst nach einem Tag
sich neu anmelden müssen.
Die allgemeinen Einstellungen dazu findet man ja in der php.ini aber ob man das nach Source IP
filtern kann ist nicht ersichtlich.
Vielen Dank im Voraus
Gruß EvilToken
ich betreibe eine Webseite die von externen und internen Benutzern genutzt wird.
Die Webseite nutzt PHP Sessions. Momentan laufen die Session nicht ab bzw. enden erst nach
einem Tag. Somit muss sich der Benutzer am nächsten Tag neu anmelden.
Das ist auch soweit ok für den internen Bereich aber für extern eher nicht.
Nun die Frage:
Kann man ein Session Timeout definieren der nur bei externen Benutzern greift?
Die internen Benutzer sollen weiterhin Tagessession haben, sodass sie erst nach einem Tag
sich neu anmelden müssen.
Die allgemeinen Einstellungen dazu findet man ja in der php.ini aber ob man das nach Source IP
filtern kann ist nicht ersichtlich.
Vielen Dank im Voraus
Gruß EvilToken
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 166230
Url: https://administrator.de/contentid/166230
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
3 Kommentare
Neuester Kommentar
<?php
function ip_in_net($net,$ip) {
list($net,$bits) = explode('/',$net);
$mask = 0;
for($i=0;$i<$bits;$i++) {
$mask |= 1<<(31-$i);
}
$netNum = ip2long($net);
$ipNum = ip2long($ip);
return ($netNum == ($ipNum&$mask));
}
#...
session_name('meineseite');
$localNets = array('10.0.0.0/8');
$ipIsLocal = false;
foreach($localNets as $net)
if(ip_in_net($_SERVER['REMOTE_ADDR'],$net))
$ipIsLocal = true;
if(!$ipIsLocal)
session_set_cookie_params(0);
session_start();
?>
(ungetestet und aus dem Kopf)