freeCodeCamp/guide/russian/php/security/session-hijacking/index.md

45 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Session Hijacking
localeTitle: Захват сеанса
---
## Захват сеанса
Захват сеанса - это уязвимость, вызванная тем, что злоумышленник получает доступ к идентификатору сеанса пользователя и может использовать учетную запись другого пользователя, олицетворяя их. Это часто используется для доступа к учетной записи администратора.
### Защита от атак на захват сеансов в PHP
Для защиты от атак с захвата сеанса вам необходимо проверить текущую информацию о браузере и местоположении пользователя в отношении информации, хранящейся в сеансе. Ниже приведен пример реализации, который может помочь смягчить последствия атаки захвата сеанса. Он проверяет IP-адрес, Пользовательский агент и, если сеанс Истек, удаляет сеанс до его возобновления.
```PHP
<?php
session_start();
// Does IP Address match?
if ($_SERVER['REMOTE_ADDR'] != $_SESSION['ipaddress'])
{
session_unset();
session_destroy();
}
// Does user agent match?
if ($_SERVER['HTTP_USER_AGENT'] != $_SESSION['useragent'])
{
session_unset();
session_destroy();
}
// Is the last access over an hour ago?
if (time() > ($_SESSION['lastaccess'] + 3600))
{
session_unset();
session_destroy();
}
else
{
$_SESSION['lastaccess'] = time();
}
```
#### Дополнительная информация:
* [Руководство по безопасности сессии php.net](https://secure.php.net/manual/en/session.security.php)