Для более ясного понимания перехвата сеанса существует несколько методов, с помощью которых хакер перехватывает сеанс, и я могу пролить свет на различные типы перехвата сеанса.
согласно Википедии
Существует четыре основных метода, используемых для захвата сеанса:
Фиксация сеанса, когда злоумышленник устанавливает идентификатор сеанса пользователя на известный ему, например, отправляя пользователю электронное письмо со ссылкой, содержащей конкретный идентификатор сеанса. Теперь злоумышленнику нужно только дождаться входа пользователя в систему.
Переадресация сеанса, когда злоумышленник использует перехват пакетов для чтения сетевого трафика между двумя сторонами для кражи cookie сеанса. Многие веб-сайты используют шифрование SSL для страниц входа в систему, чтобы злоумышленники не видели пароль, но не используют шифрование для остальной части сайта после проверки подлинности. Это позволяет злоумышленникам, которые могут считывать сетевой трафик, перехватывать все данные, отправляемые на сервер, или веб-страницы, просматриваемые клиентом. Поскольку эти данные включают cookie-файл сеанса, он позволяет ему выдавать себя за жертву, даже если сам пароль не скомпрометирован. 1 Незащищенные точки доступа Wi-Fi особенно уязвимы, так как любой, кто использует сеть, обычно может читать большую часть веб-трафика между другими узлами и точкой доступа.
В качестве альтернативы злоумышленник с физическим доступом может просто попытаться украсть ключ сеанса, например, получив содержимое файла или памяти соответствующей части компьютера пользователя или сервера.
Межсайтовый скриптинг, когда злоумышленник обманывает компьютер пользователя, выполняя код, который считается надежным, поскольку он, как представляется, принадлежит серверу, позволяя злоумышленнику получить копию файла cookie или выполнить другие операции
Хотя есть несколько решений, чтобы остановить этот вид угона, например, для второго, использующего SSL или https, было бы целесообразно избежать этого. однако, если вы хотите добавить больше безопасности для вашей сессии, то я столкнулся с одним решением - разрешить передачу seesionId только через Cookies, а также создать и дополнительный маркер сеанса, который передается через URL. и только запрос, содержащий действительный токен Session, может получить доступ к сеансу.
Ниже приведен пример, демонстрирующий пример, взятый из Orielly PHP CookBook.
ini_set('session.use_only_cookies', true);
session_start();
//Create a random salt value
$salt = 'Hjkhkjh9089&j98098';
$tokenstr = (str) date('W') . $salt;
//Create a md5 hash to be used for token.
$token = md5($tokenstr);
if (!isset($_REQUEST['token']) || $_REQUEST['token'] != $token) {
// prompt for login
exit;
}
$_SESSION['token'] = $token;
output_add_rewrite_var('token', $token);
Что теперь делает output_add_rewrite_var
, добавляет еще одну пару имя / значение в механизм перезаписи URL через метод Get. Узнайте больше о функции здесь. output_add_rewrite_var
чтобы узнать больше о безопасности сеансов, предлагаю прочитать эту статью http://hungred.com/useful-information/solutions-session-attacks/
надеюсь, это поможет вам понять уязвимости сессий и как их исправить.