Некоторые веб-сайты имеют «безопасный» режим, чтобы помочь тем, кто не хочет подвергаться воздействию контента, против которого они могут возражать. Вместо настройки этой опции для каждого веб-сайта браузер может указать ваши безопасные предпочтения для всех веб-сайтов.
Эта функция полностью объяснена в документе RFC 8674. Вообще говоря, браузеры, запрашивающие безопасный контент, добавляют заголовок Prefer: safe
HTTP и серверы, соблюдающие его, включают в свои ответы следующие заголовки: Preference-Applied: safe
и Vary: Prefer
.
В Symfony 5.1 добавили поддержку этой функции в компонент HttpFoundation. Во-первых, вы можете проверить, запрашивал ли пользователь безопасный контент:
// $request is an instance of Symfony\Component\HttpFoundation\Request
if ($request->preferSafeContent()) {
// ...
}
Если вы выполнили безопасный запрос, используйте метод setContentSafe()
в ответе, чтобы добавить необходимые заголовки HTTP:
use Symfony\Component\HttpFoundation\Response;
$response = new Response('...');
$response->setContentSafe();
Важно помнить, что спецификация RFC 8674 не определяет то, что можно рассматривать как «безопасный контент». Каждый веб-сайт решает, какое из их содержимого в какой-то мере нежелательно или небезопасно.