У меня есть устройство с веб-панелью управления, и я случайно настроил его на перенаправление всех http
страниц https
, даже если некоторые не работают https
. Хотя с тех пор я исправил это, Safari, похоже, запомнил перенаправление и отказывается забыть его, вместо этого постоянно пытаясь перенаправить меня на неверный https
адрес.
Я уже закрыл Safari, очищается ~/Library/Caches/com.apple.Safari/
и , ~/Library/Cookies/HSTS.plist
но она по- прежнему кажется, вспоминая редирект , когда я вновь открыть его.
Где еще Safari может хранить эту информацию? Я могу получить доступ к нужной странице через Firefox или Chrome, так что это может быть не общесистемная служба или не та, которую используют другие браузеры.
К сожалению, поскольку веб-панель предоставляется устройством, я не верю, что могу настроить заголовки или настроить перенаправление на правильный URL-адрес, что, по-видимому, является опциями, предлагаемыми в других подобных вопросах, поэтому мне действительно нужно выяснить, где это данные хранятся, поэтому я могу уничтожить их огнем.
~/Library/Safari
папку и посмотреть, решит ли это проблему? Если это так, вы можете экспериментировать с элементами внутри папки, пока не найдете файл преступника.Ответы:
Основываясь на ответе кванты :
Я не смог использовать,
launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist
потому что у меня включена защита целостности системы :Однако я смог обойти это, сделав следующее:
killall nsurlstoraged
(останавливает процесс nsurlstoraged вашего пользователя; я действительно запустилсяsudo killall nsurlstoraged
, но я подозреваю, что нет необходимости останавливать также nsurlstoraged системы, поскольку кэш находится в папке Library пользователя)rm -f ~/Library/Cookies/HSTS.plist
(удаляет кеш HSTS)launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist
(перезапускает nsurlstoraged)источник
HSTS.plist
файла не решит проблему, потому что он будет продолжать перестраиваться. Однако после убийстваnsurlstoraged
и последующего удаления файла HSTS - все получилось!~/Library/Cookies/HSTS.plist
и удалите запись для нужного мне сайта на http 3. Перезагрузите компьютерrm -f ~/Library/Cookies/HSTS.plist
вернется,Operation not permitted
если вы не предоставили полный доступ к диску Terminal.app в Системных настройках => Безопасность и конфиденциальность => Конфиденциальность. В противном случае решение сработало отлично! Благодарность!rm ~/Library/Cookies/HSTS.plist ; touch ~/Library/Cookies/HSTS.plist ; chmod guo-wrx ~/Library/Cookies/HSTS.plist
помог мне, ноkillall nsurlstoraged
сделал.Если вы включите меню «Разработка» в настройках Safari, вы можете очистить кэш оттуда (CMD + ALT + E).
Можете ли вы подтвердить, что открытие панели управления устройства в приватном окне Safari (или в другом веб-браузере) работает правильно?
источник
~/Library/Caches/com.apple.Safari
поэтому перенаправление должно храниться где-то еще. HSTS была функцией, которую я случайно включил, но уже удалил~/Library/Cookies/HSTS.plist
.Основано на ответе @ Haravikk: /apple//a/267783/62907
fs_usage может помочь:
Значит мы можем:
тогда:
и попробуй еще раз.
источник
Вы получите хорошие результаты, если будете использовать командную строку для
curl
устройства, чтобы убедиться, что оно не выполняет перенаправление. Safari на самом деле не имеет движка для переписывания адресов - особенно если вы заходите в приватный просмотр, чтобы удалить историю, куки и т. Д.Если вы не уверены, что достаточно очистили свое сафари, вы также можете выполнить тестирование, открыв системные настройки и создав чистую / новую учетную запись пользователя на Mac и протестировав сайт в полностью чистой версии Safari после выхода из системы обычного пользователя. ,
источник
Итак, я нашел обходной путь к проблеме, хотя это не является окончательным ответом на реальный вопрос, поэтому я не буду отмечать его как таковой, пока не смогу найти больше информации.
Оказывается, что файл
~/Library/Cookies/HSTS.plist
действительно был источником проблемы, как я подозревал, однако удаление его из уязвимой учетной записи пользователя не работает, даже с закрытой Safari, так как он воссоздается через неизвестное время, вместе с нарушителем запись, которая форсирует недопустимое перенаправление.Поэтому мое решение было следующим:
su shortname
замену «shortname» коротким именем затронутой учетной записи пользователя. Нажмите ввод и при появлении запроса введите пароль для соответствующей учетной записи.rm ~/Library/Cookies/HSTS.plist
и нажмите Enter, это удалит файл хранилища HSTS.exit
, нажмите Enter и закройте терминал.В этот момент вы можете снова войти в уязвимую учетную запись пользователя, и перенаправляющий HSTS-нарушитель должен исчезнуть навсегда.
Теперь, несмотря на то, что это предоставляет полезный обходной путь, я действительно хотел бы знать, почему удаление файла HSTS.plist из моей затронутой учетной записи не сработало; тот факт, что он воссоздан, означает, что за него отвечает какой-то фоновый процесс, что означает, что должна быть возможность удалить файл из уязвимой учетной записи пользователя, просто остановив этот процесс, удалив файл, а затем перезапустив процесс.
У кого-нибудь есть идеи, какой процесс отвечает за
~/Library/Cookies/HSTS.plist
файл? Как только мы узнаем, что должно быть возможно дать более простое решение проблемы.источник
Вот идея!
Вы говорите, что не можете отменить перенаправление, настроив сервер перенаправлять запросы https обратно на http (так как у вас нет прав администратора).
Но что, если вы обманываете сафари при подключении к другому серверу, который предлагает это обратное перенаправление?
Вы можете установить это в
/etc/hosts
файле вашего локального компьютера .Например, допустим, что текущее кэшированное перенаправление - с
http://example.com
наhttps://example.com
.Теперь настройте или определите URL, который вы можете запросить на любом сервере в мире, который перенаправляет с https обратно на http. Допустим, этот сервер имеет адрес
https://redirecting.example.com
.Затем найдите IP-адрес
redirecting.example.com
. В терминале вы можете сделать так:Вы получите результат примерно так:
Теперь откройте файл / etc / hosts и добавьте новую строку, которая направляет запросы для example.com по IP-адресу redirecting.example.com, например так:
Сохраните изменения и очистите кэш DNS в терминале следующим образом:
Затем в Safari сделать запрос на
https://example.com
ответ должен быть редирект обратноhttp://example.com
, в этот момент (скрестив пальцы) ваш редирект Safari от 6 месяцев назад будет перезаписан.Когда закончите, удалите строку, которую вы добавили в файл / etc / hosts, и снова очистите кэш DNS.
источник
~/Library/Cookies/HSTS.plist
является виновником, но удаление его из уязвимой учетной записи не работает (так как он создается заново). некоторое время спустя, в комплекте с плохим перенаправлением). Не уверен, какой процесс это делает, хотя.После всех этих решений у меня сработало следующее:
~/Library/Cookies/HSTS.plist
источник
Мои два цента за новую macOS Mojave 10.14 Beta (18A365a)
а) Вы не можете остановиться окончательно
nsurlstoraged
, он запускается через 2 секунды, даже если sudoб) вы не можете удалить "HSTS.plist": если вы набираете:
Вы получаете: Операция не разрешена
в) даже если вы попробуете:
Вы получаете: Операция не разрешена
то же самое для
(пустой файл ..)
Таким образом, вы не можете определенно получить к нему доступ . (может SIP?)
г) как ни странно, вы можете удалить, если из Finder:
CMD Shift G "~ / Library / Печенье /"
и вы можете удалить с помощью мыши:
д) более странно: вы можете перейти на рабочий стол с помощью мыши, отредактировать и поместить его обратно !
(настоящая ерунда, GUI более мощный, чем sudo ..)
источник
В Safari, Firefox и Chrome все, что вам нужно сделать, это открыть боковую панель разработчика , выбрать вкладку сети и отключить кэширование .
В Safari это зачеркнутая труба, синяя рядом с логотипом мусорного ведра. Активируйте это, и старый постоянный редирект должен быть проигнорирован.
Самым большим преимуществом является то, что вам не нужно связываться с файлами, вы не удалите все записи HTST и не потеряете преимущества безопасности. Также это работает через браузеры.
источник
Сначала убедитесь, что сервер не отправляет заголовок Strict-Transport-Security.
Вы можете сделать это с помощью
curl -I
(-I
просто получите заголовки).Если сервер отправляет заголовок Strict-Transport-Security, удаление его из браузера не будет иметь никакого эффекта, так как при следующем входе на сайт он будет установлен снова.
Удалите свой сайт из базы данных Safari Http Secure Transport Security.
~/Library/Cookies/HSTS.plist
Поиск записи для сайта, к которому вы хотите получить доступ через http, удалить его и сохранить файл.
nsurlstoraged
но это может быть связано с SIP, поэтому перезагрузка компьютера может быть проще. Знакомства ответ Гранта и ответ Quanta в о перезапускеnsurlstoraged
источник
Я сделал сценарий из ответа Grand Heaslip:
Он корректно завершает сафари, останавливает nsurlstoraged, удаляет HSTS.plist и снова запускает nsurlstoraged. У меня это работало нормально на macOS 10.13.5
источник
Я использую Мохаве (10.14). Я попробовал методы, приведенные до сих пор, чтобы удалить HSTS.plist. Кроме того, мне нужно было добавить терминал в список «Системные настройки»> «Безопасность и конфиденциальность»> «Полный доступ к диску», чтобы устранить симптом «Операция не разрешена» при отображении содержимого ~ / Library / Cookies /.
Но удаление файла и перезапуск демона не сработали. Поэтому я снова попытался открыть Safari, зашел в «Настройки», «Конфиденциальность», «Управление данными сайта». Затем я удалил все «файлы cookie кэша, локальное хранилище» для доменного имени, нарушившего правила. Это решило мою проблему.
Я не могу сейчас сказать, требовалось ли удаление HSTS или нет.
источник
Затем попробуйте выполнить это действие, перейдите к шагу 1: перейдите в папку ~ / Library, шаг 2: удалите папку Safari из ~ / Library / Application Support, шаг 3: удалите указанные ниже папки из ~ / Library / Caches, шаг 4: затем удалите ~ / Папка Library / Safari PS: во время вышеуказанных операций держите сафари закрытым
источник