A назад я встретил интересную дыру в безопасности
<a href="#" onclick="location.href='http://someurl.here'; return false;" target="_blank">Link</a>
Выглядит достаточно безобидно, но есть дыра, потому что по умолчанию открываемая страница позволяет открытой странице перезвонить ей через window.opener
. Существуют некоторые ограничения, являющиеся междоменными, но все же есть некоторые оскорбления, которые можно сделать
window.opener.location = 'http://gotcha.badstuff';
Теперь HTML имеет обходное решение
<a href="#" onclick="location.href='http://someurl.here'; return false;" target="_blank" rel="noopener noreferrer">Link</a>
Это предотвращает передачу нового окна window.opener
. Это хорошо и хорошо для HTML, но что, если вы используете window.open
?
<button type="button" onclick="window.open('http://someurl.here', '_blank');">
Click Me
</button>
Как вы можете заблокировать использование window.opener
здесь?