target="_blank" відкриває посилання у новій вкладці.
rel="noopener" захищає вашу сторінку від маніпуляцій із боку сторінки Facebook, яка відкриється в новій вкладці.
Атрибут rel="noopener" використовується для підвищення безпеки та продуктивності, коли відкривається посилання в новій вкладці або вікні браузера за допомогою target="_blank".
1. Що означає rel="noopener"?
Він забороняє новій вкладці (або вікну), яка відкрилася, отримувати доступ до об'єкта window.opener у JavaScript.
Це захищає сторінку, з якої було відкрито посилання, від потенційних атак, таких як "tabnabbing".
2. Що таке "tabnabbing"?
Tabnabbing — це тип фішингової атаки.
Зловмисник може змінити URL або контент оригінальної сторінки в новій вкладці, використовуючи window.opener, і спробувати обманути користувача, наприклад, виманити дані для входу.
3. Як працює rel="noopener"?
Коли посилання має rel="noopener", нова вкладка не отримує доступ до об'єкта window.opener, а значення цього об'єкта стає null. Це:
Запобігає доступу до контексту вихідної сторінки.
Знижує ризик атак через маніпуляцію JavaScript.
4. Чи потрібно rel="noopener" для внутрішніх посилань?
Ні, це переважно для зовнішніх посилань (інших доменів), особливо в комбінації з target="_blank". Внутрішні посилання зазвичай не вимагають цього, якщо ви довіряєте своєму коду.
5. Поєднання з rel="noreferrer"
Часто rel="noopener" поєднують із rel="noreferrer". Це також забороняє передачу реферера (інформації про URL сторінки-джерела) на нову вкладку, що підвищує конфіденційність.