Cookie в PHP: сохраняем настройки без лишних рисков

Разбираем параметры setcookie и сохраняем выбранный язык интерфейса.

2026-10-04 · ТОО «IOC» · 70 просмотров
Cookie в PHP: сохраняем настройки без лишних рисков

Cookie подходит для небольших настроек интерфейса. Например, сайт может запомнить выбранный язык между посещениями. При этом значение приходит от браузера: проверяйте его так же, как данные обычной формы.

Пример для HTTPS-сайта

$language = 'ru';
setcookie('site_language', $language, [
    'expires' => time() + 30 * 86400,
    'path' => '/',
    'secure' => true,
    'httponly' => true,
    'samesite' => 'Lax',
]);

Вызов размещается до вывода HTML. В массиве $_COOKIE новое значение появится при следующем запросе. Параметр secure ограничивает передачу HTTPS-соединением, а httponly закрывает доступ из JavaScript. Если настройку должен читать клиентский код, это ограничение нужно учитывать при проектировании.

Проверяем входное значение

$language = $_COOKIE['site_language'] ?? 'ru';
if (!in_array($language, ['ru', 'kk', 'en'], true)) {
    $language = 'ru';
}

Не записывайте в cookie пароли и платёжные секреты. Флаг SameSite помогает ограничить некоторые межсайтовые запросы, но для изменяющих данные форм всё равно нужна отдельная защита CSRF.

Источники

Snipp.ru — работа с cookie, PHP — setcookie.

Обсуждение 0

Оставьте первый комментарий.

Войдите, чтобы присоединиться к обсуждению.