Я согласен, что здесь есть потенциал для фишинга. Об этом сообщалось как ошибка в FireFox довольно давно, но проблема заключается в следующем:
<body onmousedown="document.getElementById('changeMe').href='www.somewhereelse.com'">
<a id="changeMe" href="www.google.com">google</a>
</body>
События всплывают до их родителя, вам нужно будет определить, собирается ли событие onmousedown изменить href дочернего элемента. Звучит разумно? Хорошо, как насчет этого:
<script>
function switcher() {
window.location = "www.somewhereelse.com";
return false;
}
</script>
<body onmousedown="switcher()">
<a href="www.google.com">google</a>
</body>
Таким образом, нам нужно обратить внимание на window.location
в функциях, запускаемых также событиями onmousedown. Все еще звучит разумно? Как насчет того, если у меня в событии onmousedown вообще удалить ссылку, заменить ее новым элементом, а затем вызвать щелчок по нему. Я могу продолжать придумывать примеры.
Суть в том, что Javascript можно использовать для перенаправления людей с помощью строки состояния - вам не следует доверять, вы можете доверять только URL-адресу.
Чтобы изменить этот браузер, необходимо указать значение href для ссылки во время президентства клика над любыми другими событиями, которые могут произойти, в основном отключите события мыши на тегах привязки. Я рискну предположить, что они, вероятно, не сделают этого, это сломает слишком много приложений, которые уже существуют.
Редактировать: В качестве альтернативы я видел, как люди предлагали разные способы обнаружения и предупреждения пользователя о возможном угоне ссылок, но я еще не видел ни одного реализованного.