Тег rel=”noopener”, и как его удалить в WordPress

Если вы обновили свою версию WordPress до 4.7.4 или более поздней, вы, вероятно, заметили новый атрибут rel= “noopener”, который появляется вместе с атрибутом target= “_blank” при добавлении URL-ссылок. Этот атрибут автоматически добавляется ко всем внутренним и внешним ссылкам, которые открываются в новом окне.

Страница редактирования записи

Атрибут rel=”noopener” был введен с целью повышения безопасности и предотвращения определенных уязвимостей, связанных с открытием ссылок в новом окне. Он защищает ваш сайт от вредоносных атак, позволяя странице, открываемой через target=»_blank», получить доступ к объекту window.opener, что может привести к выполнению нежелательного кода.

Однако в некоторых случаях разработчики могут пожелать удалить этот атрибут. Для этого существует несколько подходов. Во-первых, вы можете использовать плагин, который позволит вам модифицировать HTML-ссылки, но проще всего выполнить это через файл функций вашей темы. Вам нужно добавить следующий код в файл functions.php вашей темы:

function remove_noreferrer($content) {
return str_replace('rel="noopener"', '', $content);
}
add_filter('the_content', 'remove_noreferrer');

Этот код удалит атрибут rel=»noopener» из всех ссылок в содержимом ваших постов. Обратите внимание, что это может снизить безопасность вашего сайта, поэтому тщательно взвесьте все «за» и «против» перед его применением.

Кроме того, вы можете использовать специальные плагины, такие как Remove rel=»noopener» или Advanced NoFollow, которые предоставляют более удобный интерфейс для управления атрибутами ссылок. После их установки в настройках плагина вы сможете легко настроить, какие атрибуты будут добавляться или удаляться из ваших ссылок.

Убедитесь, что вы всегда делаете резервные копии вашего сайта перед внесением изменений в код или установкой новых плагинов, чтобы избежать непредвиденных проблем.

Что делает тег rel= “noopener”?

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

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

Атрибут rel=”noopener” препятствует использованию объекта window.opener в JavaScript. Если этот объект не работает, то и управление текущей вкладкой станет невозможным.

Это улучшение безопасности было внедрено в плагин TinyMCE 23 ноября 2016 года. Поскольку WordPress использует TinyMCE в качестве текстового редактора, эта функция была интегрирована и в версии 4.7.4.

Помимо rel=»noopener», также существует атрибут rel=»noreferrer». Он не только предотвращает доступ к объекту window.opener, но и не передает информацию о реферере (странице, с которой была осуществлена переход) на целевой сайт. Это помогает дополнительно защитить конфиденциальность пользователей и их активность в сети.

Использование атрибута rel=»noopener» рекомендуется при создании ссылок, открывающих новые окна, особенно если вы не контролируете контент, на который ссылаетесь. Многие современные браузеры также по умолчанию включают эту функцию, что позволяет улучшить безопасность пользователей в интернете.

Хотя применение атрибута rel=»noopener» является важным шагом в улучшении безопасности, не следует забывать о других методах защиты веб-сайтов, таких как использование HTTPS, регулярное обновление плагинов и тем, а также минимизация использования сторонних скриптов.

Тег rel= “noopener” негативно влияет на сайт?

Нет, не стоит! Многие пользователи WordPress боятся, что атрибут rel=”noopener” превратит все внутренние и внешние ссылки в “nofollow”, что негативно скажется на SEO. Однако rel=”noopener” является лишь указанием для браузеров пользователей не использовать объект window.opener.

SEO вашего сайта зависит от поисковых систем, которые не реагируют на атрибут rel=”noopener”. Аналитические инструменты также игнорируют этот тег.

Возможно, это создавало проблемы, когда разработчики WordPress впервые ввели тег rel=”noopener noreferrer” до выхода версии 4.7.4. В прежней версии “noreferrer” не позволял ссылке определять, откуда она пришла.

Хотя это не оказывало влияния на SEO, изменения касались некоторых аналитических инструментов и партнерских программ. Однако затем разработчики убрали тег “noreferrer”, и теперь с rel=”noopener” нет проблем. Просто убедитесь, что ваша версия WordPress актуальна.

Помимо этого, добавление атрибута rel=”noopener” может значительно повысить безопасность вашего сайта. Этот атрибут помогает защитить ваш сайт от потенциальных атак, связанных с уязвимостями, которые могут возникнуть при использовании объектного окна (window.opener). Таким образом, когда пользователи открывают ваши ссылки в новой вкладке, они не могут навредить вашему сайту.

Рекомендуется применять rel=”noopener” в сочетании с атрибутом target=»_blank» для всех внешних ссылок. Это добавляет дополнительный уровень безопасности. Таким образом, вы не только улучшаете безопасность, но и сохраняете контроль над пользовательским опытом.

Несмотря на возможные недоразумения, использование rel=”noopener” не повредит оптимизации сайта, а наоборот, может быть полезным шагом, обеспечивая безопасность и защиту ваших пользователей.

Как удалить rel=”noopener”?

В общем, нет разумных причин для удаления rel=”noopener” с веб-страниц. Как уже упоминалось, тег не оказывает влияния на SEO, аналитические инструменты или партнерские ссылки. Он лишь защищает ваших пользователей от потенциально опасных ссылок, которые могут управлять их вкладками.

Тем не менее, некоторые владельцы сайтов на WordPress могут хотеть удалить этот тег.

Удаление rel=”noopener” может быть непростым, поскольку он встроен в редактор WordPress. Даже если вы уберете его вручную из HTML-кода, он будет добавлен вновь при сохранении документа. Поэтому оптимальнее отключить эту функцию в самом плагине TinyMCE.

Для этого необходимо добавить несколько строк кода в файл functions.php вашей активной темы WordPress.

Если вы не знаете, как редактировать файл functions.php, вам может помочь плагин ProFunctions.

function site_tinymce_disable_noopener_tag ( $mceInit ) { $mceInit["allow_unsafe_link_target"] = true; return $mceInit; } add_filter( 'tiny_mce_before_init', 'site_tinymce_disable_noopener_tag' );

Этот код предотвратит добавление тега rel=”noopener” в ваши записи. Однако он не уберет уже существующие теги, так что вам все равно придется удалить их вручную из постов, сохраненных после обновления до версии 4.7.4.

Важно отметить, что удаление этого тега может повлечь за собой определенные риски для безопасности ваших пользователей. Тег rel=”noopener” предотвращает доступ новой вкладки к объекту window предыдущей вкладки, что может защитить от некоторых возможных атак, таких как phishing или hijacking.

Если вы по-прежнему хотите удалить rel=”noopener”, то лучше обсудить этот вопрос с разработчиками вашего сайта или проделать необходимые изменения только на хорошо защищенных страницах.

Оставьте комментарий