Активный
- Тема Автор
- #1
Сессии и куки позволяют хранить данные между запросами. Разберем использование.
Работа с сессиями
Настройка сессий
Работа с куками
Безопасные куки
Валидация сессий
Важные моменты:
- Используйте безопасные настройки
- Валидируйте данные сессий
- Устанавливайте таймауты
- Защищайте от CSRF атак
Правильная работа с сессиями обеспечивает безопасность!
Работа с сессиями
Код:
<?php
session_start();
// Установка переменных сессии
$_SESSION["username"] = "John";
$_SESSION["logged_in"] = true;
$_SESSION["user_id"] = 123;
// Использование
if(isset($_SESSION["logged_in"]) && $_SESSION["logged_in"]) {
echo "Добро пожаловать, " . $_SESSION["username"];
}
// Удаление переменной
unset($_SESSION["username"]);
// Уничтожение сессии
session_destroy();
?>
Настройка сессий
Код:
<?php
// Безопасные настройки сессий
ini_set("session.cookie_httponly", 1);
ini_set("session.cookie_secure", 1);
ini_set("session.use_strict_mode", 1);
ini_set("session.cookie_samesite", "Strict");
session_start();
?>
Работа с куками
Код:
<?php
// Установка куки
setcookie("username", "John", time() + 3600, "/");
// Чтение куки
if(isset($_COOKIE["username"])) {
echo "Username: " . $_COOKIE["username"];
}
// Удаление куки
setcookie("username", "", time() - 3600, "/");
?>
Безопасные куки
Код:
<?php
// Безопасная установка куки
setcookie(
"session_id",
$sessionId,
[
"expires" => time() + 3600,
"path" => "/",
"domain" => "",
"secure" => true,
"httponly" => true,
"samesite" => "Strict"
]
);
?>
Валидация сессий
Код:
<?php
session_start();
function validateSession() {
if(!isset($_SESSION["user_id"])) {
header("Location: login.php");
exit;
}
// Проверка таймаута
if(isset($_SESSION["last_activity"]) &&
time() - $_SESSION["last_activity"] > 1800) {
session_destroy();
header("Location: login.php");
exit;
}
$_SESSION["last_activity"] = time();
}
validateSession();
?>
Важные моменты:
- Используйте безопасные настройки
- Валидируйте данные сессий
- Устанавливайте таймауты
- Защищайте от CSRF атак
Правильная работа с сессиями обеспечивает безопасность!