Blank a href: Атрибут target | htmlbook.ru

Links to cross-origin destinations are unsafe

Published on • Updated on

Translated to: Español, 한국어, 中文, Pусский, 日本語

Table of contents

  • How the Lighthouse cross-origin destination audit fails
  • How to improve your site’s performance and prevent security vulnerabilities
  • Resources

When you link to a page on another site using the target="_blank" attribute, you can expose your site to performance and security issues:

  • The other page may run on the same process as your page. If the other page is running a lot of JavaScript, your page’s performance may suffer.
  • The other page can access your window object with the window.opener property. This may allow the other page to redirect your page to a malicious URL.

Adding rel="noopener" or rel="noreferrer" to your target="_blank" links avoids these issues.

As of Chromium version 88, anchors with target="_blank" automatically get noopener behavior by default. Explicit specification of rel="noopener" helps protect users of legacy browsers including Edge Legacy and Internet Explorer.

# How the Lighthouse cross-origin destination audit fails

Lighthouse flags unsafe links to cross-origin destinations:

Lighthouse uses the following process to identify links as unsafe:

  1. Gather all <a> tags that contain the target="_blank" attribute but not the rel="noopener" or rel="noreferrer" attributes.
  2. Filter out any same-host links.

Because Lighthouse filters out same-host links, there’s an edge case you should be aware of if you’re working on a large site: if one page contains a target="_blank" link to another page on your site without using rel="noopener", the performance implications of this audit still apply. However, you won’t see these links in your Lighthouse results.

Each Best Practices audit is weighted equally in the Lighthouse Best Practices Score. Learn more in The Best Practices score.

# How to improve your site’s performance and prevent security vulnerabilities

Add rel="noopener" or rel="noreferrer" to each link identified in your Lighthouse report. In general, when you use target="_blank", always add rel="noopener" or rel="noreferrer":

<a href="https://examplepetstore.com" target="_blank" rel="noopener">
Example Pet Store
</a>
  • rel="noopener" prevents the new page from being able to access the window.opener property and ensures it runs in a separate process.
  • rel="noreferrer" has the same effect but also prevents the Referer header from being sent to the new page. See Link type «noreferrer».

See the Share cross-origin resources safely post for more information.

# Resources

  • Source code for Links to cross-origin destinations are unsafe audit
  • Share cross-origin resources safely
  • Site isolation for web developers

Updated on • Improve article

Разница между целевыми атрибутами «blank» и «_blank» в HTML

Улучшить статью

Сохранить статью

  • Уровень сложности: Базовый
  • Последнее обновление: 03 Авг, 2021

  • Читать
  • Обсудить
  • Улучшить статью

    Сохранить статью

    Если вы когда-либо замечали на веб-сайте, что несколько ссылок открывались либо в новой вкладке, либо в новом окне, либо иногда, также может случиться так, что на некоторых веб-сайтах нажмите на ссылку в первый раз, она откроется в новой вкладке, и эта конкретная открытая вкладка будет обновляться и использоваться повторно каждый раз, когда мы нажимаем на ссылку. Оба этих сценария возможны при использовании целевого атрибута HTML. В этой статье мы увидим, как использовать атрибут target=»blank» и target=»_blank» для открытия гиперссылки на другой вкладке. Если вы не знаете, обратитесь к разделу Как открыть гиперссылку в другом окне или вкладке в HTML?. Мы обсудим оба атрибута один за другим. Давайте сначала посмотрим target=»blank».

    1. target=”blank”: если мы установим цель как “blank”, то после нажатия на ссылку или после отправки формы будет открыта вкладка браузера в первый раз, и она будет повторно использоваться та же вкладка. Цель использования этого атрибута — удерживать внимание пользователя на вашем веб-сайте без особых усилий для поиска и посещения внешней ссылки каждый раз на отдельной вкладке. Это также облегчает использование браузера пользователя, так как слишком много открытых вкладок может снизить производительность всего браузера, а также повлиять на систему, а также возможно, что браузер может зависнуть.

    Example:

    HTML

    >

    4 >

    >

    >

    >

    >

    9>

    9. , мы можем видеть, что всякий раз, когда вы нажимаете на ссылку, она нацелена на новую вкладку для каждого клика.

    Различия между target="blank" и target="_blank".

    < html >

       

    < head >

         < title >target="blank" title >

    > голова

       

    < body >

       

        

            

            

            

         < p >Using target ="blank" p >

       

             цель = "blank" >

             Open GFG

         a >

    body >

       

    html >

    Вывод:

    Используя target=”blank” для первого клика по выходным данным, мы можем увидеть его по ссылке выше

    9000 будет открываться в новой вкладке, и каждый раз, когда мы нажимаем на одну и ту же ссылку, она будет перенаправляться на эту конкретную открытую вкладку.

    2. target="_blank": если мы установим цель как "_blank", то после нажатия на ссылку или после отправки формы каждый раз будет открываться новая вкладка браузера. Цель использования этого атрибута — удерживать пользователей на вашем сайте в течение длительного времени, что улучшит большинство ваших показателей: показатель отказов, конверсию, количество посещенных страниц и т. д.

    < HTML >

    < HEAD >

    >

    <9039....> 039039.> .> .> ..

    Голова >

    < Корпус >

    >

    9090 . 0038     

            

         < p >Using target="_blank" p >

       

             target = " _blank " >

    Open GFG

    A >

    A >

    A >

    0039 Body >

    HTML >

     
    target=”blank”
    target=”_blank”
    1. 1.

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

    Открыть оффсайтную ссылку в отдельной вкладке или окне.

    2.

    Открывает новую вкладку браузера в первый раз и после этого она будет использоваться повторно. По этой причине браузер может работать эффективно.

    Каждый раз открывает новую вкладку браузера. Это может повлиять на общую производительность браузера, а также повлиять на систему.


    Статьи по теме

    Что нового

    Мы используем файлы cookie, чтобы обеспечить вам максимальное удобство просмотра нашего веб-сайта. Используя наш сайт, вы подтверждаете, что вы прочитали и поняли наши Политика в отношении файлов cookie & Политика конфиденциальности

    Пустая мишень Джекила | Кейт Мифсуд

    Надоело писать необработанные теги привязки HTML в уценке или заставлять ваших авторов добавлять дополнительные технические атрибуты, такие как:

     [Внешняя ссылка](https://rubygems.org/gems/jekyll-target-blank){:target ="_blank"} 

    Ну, я был, как и некоторые из моих клиентов. Так ожил этот проект. Jekyll Target Blank заставляет все внешние ссылки открываться в новой вкладке или окне на страницах, постах и ​​коллекциях Jekyll.

    Прокачайте свои внешние ссылки

    Начиная с версии 1.1.0 Jekyll Target Blank включает несколько интересных новых функций.

    Безопасность

    Добавляет rel="noopener noreferrer" по умолчанию. ❤️ @buren за ваш вклад.

    Это новое поведение по умолчанию можно настроить, как описано ниже.

  • Автоматически добавлять имена классов CSS к внешним ссылкам.
  • Установка

    Добавьте следующее к вашему сайту Gemfile

     gem 'jekyll-target-blank' 

    и добавьте следующее в плагины _config.yml

     вашего сайта:
      - jekyll-target-blank 

    Примечание: если jekyll --version меньше, чем 3.5 , используйте:

     gems:
      - jekyll-target-blank 

    Использование

    По умолчанию. все теги привязки и ссылки уценки, указывающие на внешний хост, кроме того, который указан как url в Jekyll's _config.yml автоматически откроется в новой вкладке браузера после создания сайта.

    Включены все ссылки на страницах, сообщениях и пользовательских коллекциях, за исключением простых текстовых ссылок.

    Примеры

    HTML

    Следующий тег привязки HTML :

     Google 

    будет заменен на:

      com" target="_blank" rel="noopener noreferrer">Google 

    .. если URL вашего сайта не google.com 😉

    Markdown
     [Google](https://google.com) 

    будет сгенерирован как:

     Google 

    Конфигурация

    Для использования этого плагина не требуется специальной настройки, однако вы можете переопределить некоторые поведения по умолчанию, а также использовать некоторые дополнительные функции, такие как объясняется в этом разделе.

    Переопределить поведение по умолчанию

    Вы можете переопределить поведение по умолчанию и заставить внешние ссылки открываться в новом браузере только в том случае, если они имеют имя класса CSS, включенное с тем же значением, что и имя, указанное в файле Jekyll _config.yml .

    Чтобы переопределить эту автоматизацию, добавьте запись в файл config.yml вашего сайта, указав, какое имя класса CSS должно иметь ссылка, чтобы ее можно было принудительно открыть в новом браузере:

     target-blank:
        css_class: ext-link 

    При указанном выше параметре только ссылки, содержащие class="ext-link" Атрибут будет принудительно открыт в новом браузере.

    Автоматически добавлять дополнительные классы CSS

    Вы также можете автоматически добавлять дополнительные классы CSS к соответствующим внешним ссылкам. Эта функция полезна, когда вы хотите добавить стили CSS к внешним ссылкам, например, автоматически отображать значок, чтобы показать читателю, что ссылка откроется в новом браузере.

    Вы можете добавить один или несколько разделенных пробелами классов CSS в _config.yml вот так:

     target-blank:
        add_css_classes: css-class-one css-class-two 

    Приведенный выше пример добавит class="css-class-one css-class-two" к сгенерированному тегу привязки. Эти имена классов CSS будут добавлены в дополнение к любым другим существующим именам классов CSS ссылки.

    Переопределить атрибуты rel по умолчанию

    Из соображений безопасности rel="noopener noreferrer" добавляются по умолчанию ко всем обрабатываемым внешним ссылкам. Вы можете переопределить добавление любого из noopener и noreferrer со следующими записями в файле _config. yml вашего сайта.

    Чтобы исключить значение noopener :

     target-blank:
       noopener: false 

    Чтобы исключить значение noreferrer :

     target-blank:
       noreferrer: false 

    Чтобы исключить значения

    noopner и noreferrer :

     target-blank:
       noopener: ложь
       noreferrer: ложь 
    Добавление дополнительных значений атрибута rel

    Вы можете добавить дополнительные значения атрибута rel="" , просто указав их в файле _config.yml вашего сайта.

     цель-пусто:
        rel: nofollow 

    или даже более одного дополнительного:

     target-blank:
        rel: nofollow 

    Примечание:

    Параметр rel переопределяет другие значения атрибута rel по умолчанию. Поэтому (например), если исключить noopener , а затем добавьте его в свойство rel , оно все равно будет добавлено.

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

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