Встраивание iframe на страницы WordPress может создавать угрозы безопасности, особенно если контент поступает из ненадежных источников. В этой статье мы подробно рассмотрим, как отключить вставку iframe в WordPress, какие методы использовать и как сделать это безопасно, не нарушая функциональность сайта.
Почему нужно отключать iframe в WordPress? Риски и уязвимости
iframe позволяет вставлять на сайт внешний контент, например, видео, карты, формы и другие ресурсы. Однако это часто становится причиной XSS-атак (межсайтового скриптинга), когда злоумышленники внедряют вредоносный код. Кроме того, iframe может замедлять загрузку страниц и ухудшать пользовательский опыт.
Если вы не планируете использовать iframe на сайте, лучше полностью запретить эту возможность, тем самым повысив безопасность и производительность.
Стандартные способы отключения iframe в WordPress
WordPress по умолчанию позволяет вставлять iframe в визуальном редакторе, если вы работаете с HTML. Для отключения iframe можно воспользоваться фильтрами и настройками редактора.
1. Отключение iframe через фильтр wp_kses
Функция wp_kses отвечает за очистку HTML-кода в WordPress, фильтруя нежелательные теги. Мы можем расширить или сузить список разрешенных тегов.
function wpquiz_disable_iframe_wp_kses($tags) {
if (isset($tags['iframe'])) {
unset($tags['iframe']);
}
return $tags;
}
add_filter('wp_kses_allowed_html', 'wpquiz_disable_iframe_wp_kses');Этот код удаляет тег iframe из разрешенных HTML-тегов, что блокирует вставку iframe через стандартные редакторы и контент.
2. Отключение iframe в Gutenberg (блок-редакторе)
Gutenberg позволяет добавлять блоки с iframe, например, "Встроенный" (Embed). Чтобы запретить добавление iframe, можно убрать поддержку встроенных блоков с помощью JavaScript.
function wpquiz_disable_embed_block() {
wp_enqueue_script('wpquiz-disable-embed', get_template_directory_uri() . '/js/disable-embed.js', array('wp-blocks', 'wp-dom-ready', 'wp-edit-post'), '1.0', true);
}
add_action('enqueue_block_editor_assets', 'wpquiz_disable_embed_block');В файле disable-embed.js пишем:
wp.domReady( function() {
wp.blocks.unregisterBlockType('core/embed');
wp.blocks.unregisterBlockType('core-embed/*');
});Это удалит стандартные блоки embed, которые используют iframe.
Отключение iframe через плагины: обзор и настройка
Если вы не хотите писать код вручную, можно использовать плагины для контроля над HTML и безопасностью.
Плагин Clearfy Pro для безопасности и отключения iframe
Clearfy Pro — мощный инструмент для оптимизации и безопасности WordPress. Среди множества функций есть возможность блокировки iframe и других потенциально опасных тегов.
Для этого:
- Установите и активируйте Clearfy Pro.
- В настройках перейдите в раздел безопасности.
- Активируйте опцию отключения iframe и других embed-тегов.
Плагин автоматически внедрит необходимые фильтры, не требуя от вас писать код.
Другие плагины для ограничения iframe
Можно рассмотреть и другие плагины, например, «Disable HTML Tags» или «WP Content Security Policy». Они позволяют гибко управлять разрешенными тегами и ограничивать iframe.
Настройка Content Security Policy (CSP) для контроля iframe
Для дополнительного уровня защиты можно настроить заголовок Content Security Policy на сервере, который запрещает загрузку iframe с нежелательных источников.
Пример настройки в .htaccess для Apache:
Header set Content-Security-Policy "frame-src 'self';"Это разрешит загрузку iframe только с вашего домена, блокируя остальные.
Для Nginx добавьте в конфигурацию:
add_header Content-Security-Policy "frame-src 'self';";Такой подход мощно снижает риски внедрения вредоносного iframe.
Проверка и отладка после отключения iframe
После внедрения ограничений важно протестировать, что iframe действительно не вставляются в контент. Для этого:
- Попробуйте вставить iframe через редактор — должно быть запрещено.
- Проверьте исходный код страницы — iframe не должно быть.
- Используйте инструменты разработчика браузера, проверяя наличие тегов iframe.
Если вы используете кеширование, очистите кеш после изменений, чтобы увидеть актуальный результат.
Выводы и рекомендации
Отключение iframe в WordPress — эффективный способ повысить безопасность сайта и избежать проблем с вредоносным кодом. Рекомендуется комбинировать методы: использовать фильтры WordPress, отключать встроенные блоки редактора и настраивать Content Security Policy на сервере.
Если вы хотите упростить задачу, обратите внимание на Clearfy Pro — он автоматизирует многие процессы безопасности и оптимизации.
Соблюдение этих рекомендаций поможет сохранить ваш сайт на WordPress безопасным и стабильным.