Perhaps, you would also like to timeout a session after some idle time. I noticed that session.gc_maxlifetime is not suitable for this. So I used this code to do the job:
<?php
if (!isset($_SESSION['timeout_idle'])) {
$_SESSION['timeout_idle'] = time() + MAX_IDLE_TIME;
} else {
if ($_SESSION['timeout_idle'] < time()) {
//destroy session
} else {
$_SESSION['timeout_idle'] = time() + MAX_IDLE_TIME;
}
}
?>
Сесии и сигурност
Външни препратки: » Session fixation
Сесийният модул не може да гарантира, че информацията, която съхранявате в сесия ще се вижда само от потребителя, който я е създал. Трябва да предприемете допълнителни мерки, за да може активно да защитавате цялостта на сесията, в зависимост от стойността, свързана с нея.
Определете степента на важност на информацията, съхранявана от сесиите ви и предприемете допълнителни мерки -- това обикновено си има цена - известно неудобство за потребителя. Например, ако желаете да предпазите потребителите от прости social engineering тактики, трябва да включите session.use_only_cookies. В този случай, бисквитките трябва да са включени безусловно от страната на клиента, като в противен случай сесиите няма да работят.
Съществуват няколко начина за "изтичане" на текущия сесиен идентификатор към трети лица. Това предоставя на трети лица достъп до всички ресурси, които са свързани с определен сесиен идентификатор. Първо - при URL адреси предаващи сесийни идентификатори. Ако сайтът ви има връзка към външен сайт, URL адресът, както и сесийният идентификатор могат да бъдат записани в журналния файл на външния сайт. Второ - при по-упорит нападател, може да проследи мрежовият ви трафик. Ако не са криптирани сесийните идентификатори, ще бъдат пренесени като обикновен текст. Решението на проблема тук е да включите SSL криптиране на сървъра и да го направите задължителен за потребителите.
Сесии и сигурност
27-Oct-2008 10:22
22-Oct-2008 01:47
It is also quite important to (somehow) make sure that the cookies you're setting (including the session cookie) is only visible to the site that created it (or to other trusted sites only).
If the cookie's path is set to '/' (the whole domain), then any website on the same domain (might be lots of websites) _will_ get the cookie through HTTP headers and could possibly hijack your session.
One slightly acceptable protection would be to lock a session to one IP adress.
