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
Please also mark the comments that contributed to the solution of the article
Content-Key: 166230
Url: https://administrator.de/contentid/166230
Printed on: April 19, 2024 at 11:04 o'clock
3 Comments
Latest comment
<?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)