РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
515 of 1361 menu

Метод withHttpOnly класса Cookie

Метод withHttpOnly класса Cookie возвращает новый объект куки с установленным флагом HttpOnly. Если флаг включён, браузер запрещает доступ к куке из JavaScript через document.cookie. Это защищает куку от кражи через XSS-атаки. Метод принимает один параметр - булево значение, включающее или выключающее флаг.

Синтаксис

public function withHttpOnly(bool $httpOnly): static

Пример

Давайте создадим куку и включим у неё флаг HttpOnly:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/cookie', name: 'article_cookie')] public function index(): Response { $cookie = Cookie::create('token') ->withValue('abcde') ->withHttpOnly(true); $res = new Response('cookie set'); $res->headers->setCookie($cookie); return $res; } } ?>

В результате в браузер уйдёт заголовок Set-Cookie с флагом HttpOnly:

Set-Cookie: token=abcde; path=/; httponly

Пример

Давайте выключим флаг HttpOnly, передав false:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Cookie; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/cookie', name: 'article_cookie')] public function index(): Response { $cookie = Cookie::create('token') ->withValue('abcde') ->withHttpOnly(false); $res = new Response('cookie set'); $res->headers->setCookie($cookie); return $res; } } ?>

В результате флаг HttpOnly в заголовке отсутствует:

Set-Cookie: token=abcde; path=/

Пример

Давайте прочитаем флаг HttpOnly через метод isHttpOnly:

<?php use Symfony\Component\HttpFoundation\Cookie; $cookie = Cookie::create('token') ->withValue('abcde') ->withHttpOnly(true); $res = $cookie->isHttpOnly(); var_dump($res); ?>

Результат выполнения кода:

true

Смотрите также

  • класс Cookie,
    который представляет объект куки
  • метод create,
    который создаёт новый объект куки
  • метод withSecure,
    который включает передачу куки только по HTTPS
  • метод withSameSite,
    который задаёт политику SameSite для куки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить