html_sanitize_iframe_url_protocol
Директива `html_sanitize_iframe_url_protocol` указывает допустимые протоколы URL для атрибутов iframe `src` в очищенном HTML.
Описание
Директива html_sanitize_iframe_url_protocol является частью модуля NGINX HTML Sanitization, предназначенного для обеспечения безопасности путем ограничения протоколов, разрешенных в тегах <iframe>. Эта директива принимает один или несколько аргументов‑протоколов, что позволяет настроить стандарты безопасности для внешнего контента, внедряемого через iframe. При обработке запроса с HTML‑контентом директива гарантирует, что указанные протоколы проверяются применительно к источникам любых URL в iframe. Если протокол указанного источника iframe не совпадает с теми, что заданы директивой, iframe либо модифицируется (удаляется URL), либо полностью блокируется в зависимости от конфигурации.
Контекст этой директивы ограничен location, то есть она может быть определена внутри блока location в конфигурации NGINX. Эта возможность делает её универсальной для защиты конкретных маршрутов, позволяя задавать разные параметры безопасности для разных областей приложения. Указывая протоколы, такие как https или data, администраторы могут контролировать, к каким типам внешнего контента пользователи имеют доступ в браузере, тем самым защищая от внедрения вредоносного контента или проблем смешанного содержимого при безопасном просмотре.
При настройке директивы важно учитывать удобство пользователя наряду с безопасностью. Жёсткая политика, требующая использования только https, может защитить пользователей от проблем смешанного содержимого, но может затруднить работу некоторых сервисов, которые не поддерживают https. Поэтому при установке требований к протоколам критически важно балансировать безопасность и удобство использования.
Пример конфига
location /example {
html_sanitize_iframe_url_protocol https;
}Убедитесь, что перечислили все протоколы, которые хотите разрешить, поскольку любые пропущенные будут отклонены.
Сочетание этой директивы с html_sanitize_iframe_url_domain требует тщательного управления, чтобы избежать конфликтов.