Дополнительная защита кук — флаг session.cookie_httponly

Кроме флага session.cookie_secure, обеспечивающего передачу кук по защищенному соединению, можно дополнительно усилить защиту, запретив броузеру оперировать куками посредством скриптов. Для этого предназначен еще один флаг session.cookie_httponly

Этот флаг сообщает броузеру, что куки могут передаваться только по http-протоколу, а не, например, посредством JavaScript. Это обеспечивает дополнительную защиту от XSS атак (межсайтовый скриптинг).

По умолчанию значение флага Off, поэтому имеет смысл установить его в On.

Установить флаг session.cookie_httponly можно разными способами

При передаче кук посредством http это всего лишь допонительное значение HttpOnly заголовка Set-Cookie, так что его можно установить так:

<?php
header("Set-Cookie: name=value; secure; HttpOnly");

Штатно значение session.cookie_httponly устанавливается в php.ini. Можно воспользоваться:

ini_set('session.cookie_httponly',1);

Если php установлен модулем апача, это можно сделать и в .htaccess:

<IfModule php7_module>
php_flag session.cookie_httponly On
</IfModule>

или так:

<IfModule mod_headers.c>
Header always edit Set-Cookie (.*) "$1; HTTPOnly"
</IfModule>

Флаг также может быть установлен функцией session_set_cookie_params или функцией setcookie.

Разумеется, поддержка броузерами (и разными версиями) этого параметра реализована по-разному. Тем более, ничего не гарантируется для произвольного клиента. Это всего-лишь дополнительный элемент защиты.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *