Chromium: кнопка «Остановить загрузку этой страницы» стирает URL из адресной строки

Chromium: кнопка «Остановить загрузку этой страницы» стирает URL из адресной строки

Когда я ввожу URL в адресную строку Chrome, то есть http://10.10.10.3:80сервер в данный момент недоступен, когда я пытаюсь остановить загрузку Chrome и нажимаю кнопку «остановить загрузку этой страницы», URL исчезает. Это зло!

Допустим, у меня неправильный порт, поэтому я хочу попробовать еще раз с другим портом. Мне придется снова ввести весь URL.

Когда я нажимаю кнопку «Остановить загрузку этой страницы», URL-адрес должен остаться там, где я его ввел, чтобы я мог его исправить.

Вместо этого он заменяется на «последний успешный URL», который был там ранее.

есть ли способ исправить эту плохую особенность?

решение1

Такое поведение является намеренным, и несколько лет назад разработчики всех браузеров приложили немало усилий, чтобы сделать невозможным отображение страницы с неправильным URL. Это было возможно раньше, пока этот прием не начали использовать вредоносные программы.

Поведение, о котором вы просите, является дырой в безопасности. Если бы можно было отобразить страницу с неправильным URL, злоумышленник мог бы отобразить URL вашего банка вместе со своей страницей, таким образом заставив вас ввести номер вашего счета и пароль, а затем опустошив все ваши счета. Это действительно происходило, пока эта лазейка не была закрыта.

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

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

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

Единственное решение, которое я могу предложить, — это скопировать длинный набранный URL перед нажатием Enter, и это то, что я уже делаю. Вам следует привыкнуть делать CtrlAи CtrlC перед этим, на всякий случай.


Вот как злоумышленник может использовать запрошенную вами опцию, чтобы получить ваш банковский логин:

  • Надстройка или скрипт JavaScript злоумышленника создает свой собственный веб-сайт, attacker.com/exploitкоторый выглядит точь-в-точь как ваш банк, за исключением адресной строки.
  • Злоумышленник хотел бы видеть в адресной строке URL вашего банка или что-то очень похожее, но не может, поскольку все API, которые это делают, были тщательно отсеяны разработчиками.
  • Затем злоумышленник вызывает веб-сайт с URL-адресом, который очень похож на URL-адрес вашего банка или имя которого отображается точно так же (трюки Unicode).
  • Этот веб-сайт не существует, но в адресной строке останется неправильный URL. Вместе с отображаемой страницей это будет выглядеть так, будто вы действительно находитесь на сайте своего банка.
  • Вы входите в систему, и через несколько секунд все ваши банковские счета опустошены. Прощайте, все ваши сбережения. Банк справедливо утверждает, что это ваша вина, и ничего не возвращает.

решение2

Это невозможно из-за особенностей работы веб-трафика: каждый запрос имеет/нужен результирующий статус и не может быть без состояния. Вот почему Chromium удаляет адрес, к которому вы пытались подключиться (кроме аспекта безопасности).

Когда вы запрашиваете соединение с доменом/IP-адресом, результатом может быть, например: 200 (загрузка страницы прошла успешно), 404 (не найдено), 408 (время ожидания истекло) и т. д. Когда вы отменяете свой запрос до достижения определенного состояния, очевидно, что браузер не отображает никакого результата/URL из-за действия отмены, и отсутствует код состояния HTTP XXX, который означает «отмененный запрос» (список http-запросов).

Нет ничего невозможного, три возможных пути решения этой проблемы:

  • Создать расширение для вопроса
  • Патч для Chromium, добавляющий xxxсостояние (не RFC) для отмененных запросов (обратите внимание, что Chromium требуется очень много времени для сборки)
  • Уменьшите значение по умолчанию timeout(408), этоневозможно на хроме без исправления, это обсуждаетсяздесьиздесьтакже.
    • Признайте, что это может привести к другим нежелательным эффектам, таким как превышение времени ожидания на медленных сайтах.
    • Также обратите внимание, что это можно сделать в Firefox с помощью network.http.connection-timeoutнастроек.

решение3

Хорошая практика

Есть простой способ избежать этого неудобства:
нажать Ctrl Tили Ctrl N:
открыть новую вкладку или новое окно и ввести там новый URL-адрес.

В случае ручного прерывания предзагруженная страница отсутствует, и URL-адрес не удаляется из панели.

Исправить

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

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

Заключительные замечания (Tl;dr)

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

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

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

Связанный контент