Wie lösche ich zwischengespeicherte Umleitungen vollständig aus Safari?

Ich habe ein Gerät mit einem webbasierten Steuerungsfeld und habe es versehentlich so eingestellt, dass alle httpSeiten auf umgeleitet werden https, obwohl einige nicht über funktionieren https. Obwohl ich dies inzwischen korrigiert habe, scheint sich Safari die Umleitung gemerkt zu haben und weigert sich, sie zu vergessen, sondern versucht stattdessen ständig, mich an die ungültige httpsAdresse umzuleiten.

Ich habe Safari bereits geschlossen, gelöscht ~/Library/Caches/com.apple.Safari/und ~/Library/Cookies/HSTS.plistes scheint sich immer noch an die Weiterleitung zu erinnern, wenn ich es erneut öffne.

Wo sonst könnte Safari diese Informationen speichern? Ich kann über Firefox oder Chrome auf die richtige Seite zugreifen, daher handelt es sich möglicherweise nicht um einen systemweiten Dienst, oder wenn dies nicht der Fall ist, wird er nicht von den anderen Browsern verwendet.

Da das Web-Panel von einem Gerät bereitgestellt wird, glaube ich leider nicht, dass ich Header anpassen oder eine Umleitung zurück zur richtigen URL einrichten kann, was anscheinend Optionen sind, die in anderen ähnlichen Fragen angeboten werden, also muss ich wirklich herausfinden, wo dies der Fall ist Daten werden gespeichert, damit ich sie mit Feuer zerstören kann.

Haben Sie versucht, Ihren Ordner zu löschen/beiseite zu verschieben ~/Library/Safariund zu prüfen, ob das Problem dadurch behoben wird? Wenn dies der Fall ist, können Sie mit Elementen im Ordner experimentieren, bis Sie die Schuldige-Datei finden.
Wie hast du die Weiterleitung eingestellt? Mit einer Erweiterung oder gibt es dafür eine Einstellung in Safari?
Erfolgt die Umleitung immer noch mit einem privaten Browserfenster?
@AllInOne interessante Idee, aber leider passiert es immer noch beim privaten Surfen.
@owlswipe die Umleitung war das Ergebnis der versehentlichen Aktivierung von HSTS auf dem Server (was den Browser anweist, immer https zu verwenden), jedoch unterstützen nicht alle Dienste auf dem Gerät https, daher mein Problem, da Safari ständig versucht, auf https umzuschalten und schlägt dann fehl, weil es keine Verbindung herstellen kann. Ich habe HSTS deaktiviert und die ~/Library/Cookies/HSTS.plistDatei entfernt, die damit umgehen soll, aber es passiert immer noch in Safari.

Antworten (13)

Basierend auf der Antwort von Quanta :

Ich konnte nicht verwenden, launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plistweil ich den Systemintegritätsschutz aktiviert habe:

$ launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist
/System/Library/LaunchAgents/com.apple.nsurlstoraged.plist: Operation not permitted while System Integrity Protection is engaged

Ich konnte es jedoch umgehen, indem ich Folgendes tat:

  • killall nsurlstoraged(stoppt den nsurlstoraged-Prozess Ihres Benutzers; ich habe tatsächlich ausgeführt sudo killall nsurlstoraged, aber ich vermute, dass es nicht notwendig ist, auch den nsurlstoraged-Prozess des Systems zu stoppen, da sich der Cache im Benutzerbibliotheksordner befindet.)
  • rm -f ~/Library/Cookies/HSTS.plist(löscht den HSTS-Cache)
  • launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist(startet nsurlstoraged neu)
Ich kann diese Antwort nicht genug positiv bewerten. Es scheint, dass zumindest bei Sierra HSTS.plistdas Problem durch einfaches Entfernen der Datei nicht behoben wird, da sie weiterhin neu erstellt wird. Nach dem Töten nsurlstoragedund anschließenden Entfernen der HSTS-Datei hat es jedoch funktioniert!
Vielen Dank, positiv bewertet, aber ich habe es so gemacht. 1. Schließen Sie Safari. 2. Bearbeiten ~/Library/Cookies/HSTS.plistund entfernen Sie den Eintrag für die Website, die ich auf http haben möchte. 3. Starten Sie den Computer neu
Ja, Neustart ist der Ratschlag, den Ihnen alle anderen Antworten geben, aber mit 20 geöffneten Apps ist es viel bequemer und schneller, den nsurlstoraged-Prozess neu zu starten. Danke @nvahalik!
Mojave-Update: Der Befehl rm -f ~/Library/Cookies/HSTS.plistwird zurückgegeben, Operation not permittedes sei denn, Sie haben Terminal.app in den Systemeinstellungen => Sicherheit & Datenschutz => Datenschutz vollen Festplattenzugriff gewährt. Ansonsten hat die Lösung einwandfrei funktioniert! Vielen Dank!
@ nvahalik Was vor sich geht, scheint noch seltsamer zu sein als die Datei, die neu erstellt wird. hat mir nicht einmal rm ~/Library/Cookies/HSTS.plist ; touch ~/Library/Cookies/HSTS.plist ; chmod guo-wrx ~/Library/Cookies/HSTS.plistgeholfen, aber killall nsurlstoragedtat.
Dies scheint in Big Sur nichts zu bewirken. Der Befehl killall gibt zurück „Es wurden keine passenden Prozesse gefunden, die Ihnen gehören“.

Wenn Sie das Menü „Entwickeln“ in den Safari-Einstellungen aktivieren, können Sie den Cache von dort löschen (CMD+ALT+E).

Können Sie bestätigen, dass das Öffnen der Systemsteuerung des Geräts im privaten Fenster von Safari (oder einem anderen Webbrowser) korrekt funktioniert?

Leider scheint die Menüoption „Entwickeln“ die Umleitung nicht zu löschen, ebenso wenig wie das Schließen von Safari und das manuelle Löschen ~/Library/Caches/com.apple.Safari, sodass die Umleitung woanders gespeichert werden muss. HSTS war die Funktion, die ich versehentlich aktiviert habe, aber ich habe sie bereits gelöscht ~/Library/Cookies/HSTS.plist.
Ich kann auch bestätigen, dass diese Antwort das Problem nicht behebt
Dieser hat bei mir funktioniert

Basierend auf der Antwort von @Haravikk: https://apple.stackexchange.com/a/267783/62907

Hat jemand eine Idee, welcher Prozess für die Datei ~/Library/Cookies/HSTS.plist verantwortlich ist?

fs_usage kann helfen:

❯❯❯❯ sudo fs_usage | grep HSTS
16:11:03    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000238   nsurlstorage
16:11:03    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000009   nsurlstorage
16:11:03  open              /Users/quanta/Library/Cookies/HSTS.plist                                         0.016268   nsurlstorage
16:11:03    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000008   nsurlstorage
16:11:03    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000003   nsurlstorage
16:11:03  access            /Users/quanta/Library/Cookies/HSTS.plist                                         0.000011   dbfseventsd
16:11:04  lstat64           /Users/quanta/Library/Cookies/HSTS.plist                                         0.000008   fseventsd
16:11:08    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000006   nsurlstorage
16:11:08    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000002   nsurlstorage
16:11:08  open              /Users/quanta/Library/Cookies/HSTS.plist                                         0.000144   nsurlstorage
16:11:08    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000002   nsurlstorage
16:11:08    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000003   nsurlstorage
16:11:08  access            /Users/quanta/Library/Cookies/HSTS.plist                                         0.000021   dbfseventsd
16:11:09  lstat64           /Users/quanta/Library/Cookies/HSTS.plist                                         0.000042   fseventsd

Wir können also:

launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist

dann:

rm -f ~/Library/Cookies/HSTS.plist

und versuche es erneut.

Vielen Dank! Das hat bei mir funktioniert. Ich habe HSTS.plist viele Male gelöscht (Safari davor und danach geschlossen/neu gestartet) und es wurde immer mit genau dem gleichen Inhalt wie zuvor neu erstellt. Das Entladen von nsurlstoraged zuerst, dann das Löschen der plist und das Neustarten von nsurlstoraged ergab eine saubere plist.
Sie könnten dies verbessern, indem Sie erwähnen, dass Sie Safari beenden und neu starten müssen, damit es funktioniert. Anstatt die HSTS.plist zu löschen, habe ich auch nur den problematischen Domänenschlüssel gelöscht.

Auch in Safari, Firefox und Chrome müssen Sie nur die Entwickler-Seitenleiste öffnen , den Netzwerk-Tab auswählen und das Caching deaktivieren .

In Safari ist das eine durchgestrichene Röhre, die blaue neben dem Papierkorb-Logo. Aktivieren Sie das, und die alte permanente Weiterleitung sollte ignoriert werden.Safari deaktiviert das Chaching von 503 permanenten Weiterleitungen

Der größte Vorteil ist, dass Sie nicht mit Dateien herumhantieren müssen, Sie werden nicht alle HTST-Einträge löschen und die Sicherheitsvorteile verlieren. Es funktioniert auch browserübergreifend.

Obwohl dies sehr nützlich zu wissen ist, können Sie bitte bestätigen, ob es als dauerhafte Lösung funktioniert? dh, wenn der Cache wieder aktiviert wird, wird das Problem wieder auftauchen oder wird es durch vorübergehendes Deaktivieren geleert?
@Haravikk in meinen Tests würde es nicht zur Verwendung der permanenten Weiterleitung zurückkehren, wenn stattdessen eine neue Seite geladen werden könnte. Auch nach dem Schließen des Entwicklungsfensters, wenn das Ihre Frage beantwortet

Ich habe also eine Problemumgehung für das Problem gefunden, obwohl dies keine endgültige Antwort auf die eigentliche Frage ist, sodass ich sie nicht als solche markieren werde, bis ich weitere Informationen gefunden habe.

Es stellt sich heraus, dass die Datei ~/Library/Cookies/HSTS.plisttatsächlich die Ursache des Problems war, wie ich vermutete, aber das Löschen aus dem betroffenen Benutzerkonto funktioniert nicht, selbst wenn Safari geschlossen ist, da sie nach einer unbekannten Zeit neu erstellt wird, komplett mit dem Anstoß Eintrag, der die ungültige Weiterleitung erzwang.

Also meine Lösung war folgende:

  1. Stellen Sie sicher, dass Sie mindestens ein weiteres Benutzerkonto auf Ihrem Mac haben (falls nicht, erstellen Sie eines).
  2. Abmelden des betroffenen Benutzerkontos.
  3. Melden Sie sich mit einem anderen Benutzerkonto an (ein Gastkonto ist je nach Einschränkungen möglicherweise nicht ausreichend).
  4. Finden Sie den Kurznamen Ihres betroffenen Benutzerkontos heraus; Wenn Sie es nicht wissen, überprüfen Sie es am besten unter Systemeinstellungen -> Benutzer. Normalerweise ist if der vollständige Name in Kleinbuchstaben und ohne Leerzeichen. Wenn Ihr vollständiger Name also "John Smith" lautet, kann der Kurzname "johnsmith" lauten.
  5. Öffnen Sie ein Fenster im Terminal, geben Sie ein su shortnameund ersetzen Sie „Kurzname“ durch den Kurznamen des betroffenen Benutzerkontos. Drücken Sie die Eingabetaste und geben Sie bei Aufforderung das Passwort für das betroffene Konto ein.
  6. Geben Sie nun den nächsten Befehl rm ~/Library/Cookies/HSTS.plistein und drücken Sie die Eingabetaste. Dadurch wird die HSTS-Speicherdatei gelöscht.
  7. Geben Sie schließlich ein exit, drücken Sie die Eingabetaste und schließen Sie das Terminal.

An dieser Stelle können Sie sich jetzt wieder in das betroffene Benutzerkonto einloggen und die störende HSTS-Weiterleitung sollte endgültig verschwunden sein.

Obwohl dies eine brauchbare Problemumgehung darstellt, würde ich wirklich gerne wissen, warum das Löschen der Datei HSTS.plist aus meinem betroffenen Konto nicht funktioniert hat. Die Tatsache, dass es neu erstellt wird, bedeutet, dass ein Hintergrundprozess dafür verantwortlich ist, was bedeutet, dass es möglich sein sollte, die Datei aus dem betroffenen Benutzerkonto zu löschen, indem man einfach diesen Prozess anhält, die Datei löscht und dann den Prozess neu startet.

Hat jemand eine Idee, welcher Prozess für die ~/Library/Cookies/HSTS.plistDatei verantwortlich ist? Sobald wir wissen, dass es möglich sein sollte, das Problem einfacher zu beheben.

Sie erzielen gute Ergebnisse, wenn Sie die Befehlszeile für curldas Gerät verwenden, um sicherzustellen, dass es die Umleitung nicht durchführt. Safari hat nicht wirklich eine Engine zum Umschreiben von Adressen - besonders wenn Sie ins private Surfen gehen, um Verlauf, Cookies usw. zu entfernen ...

Wenn Sie nicht sicher sind, ob Sie Ihre Safari ausreichend gesäubert haben, können Sie dies auch testen, indem Sie die Systemeinstellungen öffnen und ein sauberes/neues Benutzerkonto auf dem Mac erstellen und die Site auf einer vollständig sauberen Version von Safari testen, nachdem Sie sich von Ihrem normalen Benutzer abgemeldet haben .

Es gibt definitiv keine Umleitung (die Funktion, zu der ich versuche, eine Verbindung herzustellen, unterstützt überhaupt kein HTTPS, weshalb die Aktivierung von HSTS für das gesamte Gerät ein schrecklicher, schrecklicher Fehler war); Ich kann mich problemlos von anderen Benutzerkonten und Browsern verbinden, also ist irgendwo in meinem Hauptkonto etwas gespeichert, das dies zwischenspeichert :(
„Safari hat nicht wirklich eine Engine zum Umschreiben von Adressen“ – Ich habe derzeit das gleiche Problem in Safari mit einer Website, die auf meinem Laptop gehostet wird, und Curl (zusammen mit Firefox, Chrome und einem Private-Browsing-Fenster direkt darin Safari) auf demselben Benutzerkonto lädt die Seite einwandfrei. Es muss also etwas mit Safari selbst zu tun haben.

Nachdem ich all diese Lösungen ausprobiert hatte, funktionierte Folgendes für mich:

  • Entfernen Sie alle Instanzen der Domain aus dem Verlauf von Safari
  • Safari beenden
  • Löschen~/Library/Cookies/HSTS.plist
  • Neu starten
Dies ist die richtige Antwort, um den 301-Umleitungscache zu löschen. Nichts davon funktioniert, es sei denn, Sie entfernen auch Instanzen der Domain aus dem Safari-Verlauf.

Hier ist eine Idee!

Sie sagen, Sie können die Umleitung nicht rückgängig machen, indem Sie den Server so einstellen, dass https-Anfragen zurück auf http umgeleitet werden (da Sie dazu keinen Administratorzugriff haben).

Aber was ist, wenn Sie Safari dazu bringen, sich mit einem anderen Server zu verbinden, der diese Rückwärtsumleitung anbietet?

/etc/hostsSie können dies in der Datei Ihres lokalen Computers einrichten .

Nehmen wir zum Beispiel an, die aktuelle zwischengespeicherte Weiterleitung ist von http://example.comnach https://example.com.

Richten Sie jetzt eine URL ein oder identifizieren Sie sie, die Sie auf jedem Server der Welt anfordern können, der von https zurück auf http umleitet. Nehmen wir an, der Server hat die Adresse von https://redirecting.example.com.

Suchen Sie dann die IP-Adresse von redirecting.example.com. Im Terminal können Sie Folgendes tun:

host redirecting.example.com

Sie erhalten ein Ergebnis in etwa wie folgt:

redirecting.example.com has address 69.69.69.69

Öffnen Sie nun Ihre /etc/hosts-Datei und fügen Sie eine neue Zeile hinzu, die Anfragen für example.com auf die IP-Adresse von forwarding.example.com verweist, etwa so:

### point host example.com at the ip address of redirecting.example.com
69.69.69.69 example.com

Speichern Sie Ihre Änderungen und löschen Sie Ihren DNS-Cache im Terminal wie folgt:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; say DNS cache flushed

Dann stellen Sie in Safari eine Anfrage für https://example.comdie Antwort sollte eine Umleitung zurück zu sein http://example.com, an welcher Stelle (Daumen drücken) Ihre Safari-Umleitung von vor 6 Monaten überschrieben wird.

Wenn Sie fertig sind, entfernen Sie die Zeile, die Sie Ihrer /etc/hosts-Datei hinzugefügt haben, und leeren Sie Ihren DNS-Cache erneut.

Obwohl es eine nette Idee ist, löst es nicht das eigentliche Problem; Ich suche keine Problemumgehungen, sondern möchte wissen, wo diese Weiterleitung zwischengespeichert wird, sodass Safari sie weiterhin verwendet, obwohl sie nicht mehr gültig ist (auf dem Server ist HSTS nicht aktiviert, ich habe es einfach aus Versehen kurz aktiviert). ). Es muss irgendwo gespeichert werden, aber ich kann nicht herausfinden, wo.
Dies ist nicht das, was ich als Problemumgehung bezeichnen würde, da ich davon ausgehe, dass es das eigentliche Problem lösen wird . Es funktioniert nur um die Tatsache herum, dass Sie keine Kontrolle über das Gerät haben. Aber ich verstehe Sie - es wäre schön, die zwischengespeicherte Einstellung direkt löschen zu können. Zeigt Safari Technology Preview auch das schlechte Verhalten?
Leider so; Ich glaube nicht, dass es ein Problem mit Safari selbst als solchem ​​ist, sondern eher mit einem macOS-Dienst, von dem es abhängt, da es tatsächlich so aussieht, als wäre es ~/Library/Cookies/HSTS.plistder Schuldige, aber das Löschen aus dem betroffenen Konto funktioniert nicht (da es neu erstellt wird einige Zeit später, komplett mit schlechter Weiterleitung). Nicht sicher, welcher Prozess es tut.

Meine zwei Cent für das neue macOS Mojave 10.14 Beta (18A365a)

a) Sie können nicht endgültig anhaltennsurlstoraged , es wird in 2 Sekunden neu gestartet, auch wenn sudo

b) Sie können „HSTS.plist“ nicht löschen : wenn Sie Folgendes eingeben:

sudo rm -f ~/Library/Cookies/HSTS.plist

Sie erhalten: Betrieb nicht erlaubt

c) selbst wenn du es versuchst:

ls -la ~/Library/Cookies/

Sie erhalten: Betrieb nicht erlaubt

das gleiche für

nano ~/Library/Cookies/HSTS.plist 

(leere Akte..)

Sie können also nicht definitiv darauf zugreifen . (vielleicht SIP?)

d) Seltsamerweise können Sie Folgendes aus dem Finder löschen :

CMD Shift G"~/Bibliothek/Cookies/"

Geben Sie hier die Bildbeschreibung ein

und Sie können mit der Maus löschen:

Geben Sie hier die Bildbeschreibung ein

e) Seltsamer: Sie können mit der Maus zum Desktop wechseln, ihn bearbeiten und wieder platzieren !

(ein echter Unsinn, GUI ist mächtiger als sudo..)

das liegt an der Berechtigung Full Disk Access, wie hier erklärt apple.stackexchange.com/questions/227662/…

Stellen Sie zuerst sicher, dass der Server nicht den Strict-Transport-Security-Header sendet
Sie können dies tun mit curl -I( -Ierhält nur die Header)

curl -I http://my-http-domain.com

Wenn der Server den Strict-Transport-Security-Header sendet, hat das Entfernen aus Ihrem Browser keine Auswirkung, da er beim nächsten Zugriff auf die Website erneut gesetzt wird.

Entfernen Sie Ihre Website aus der Http Secure Transport Security-Datenbank von Safari

  1. Schließen Sie Safari
  2. Bearbeiten ~/Library/Cookies/HSTS.plist
    Suchen Sie nach dem Eintrag für die Site, auf die Sie über http zugreifen möchten, entfernen Sie ihn und speichern Sie die Datei.
    • Ich ziehe es vor, zu bearbeiten, anstatt zu entfernen, da es keine Notwendigkeit gibt, gültige Einträge zu entfernen.
    • Ich bearbeite Plist-Dateien mit Xcode, aber wenn es nicht installiert ist, können Sie einfach einen Texteditor verwenden.
  3. Starte deinen Computer neu.
    • Anstatt Ihren Computer neu zu starten, können Sie einen Neustart durchführen nsurlstoraged, dies kann jedoch aufgrund von SIP erforderlich sein, sodass ein Neustart des Computers möglicherweise einfacher ist. Siehe Grants Antwort und Quantas Antwort zum Neustartnsurlstoraged

Ich habe ein Skript aus der Antwort von Grand Heaslip erstellt:

#!/bin/sh

osascript -e 'quit app "Safari"'
sleep 2
killall nsurlstoraged
sleep 2
rm -f ~/Library/Cookies/HSTS.plist
launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist

Es beendet Safari ordnungsgemäß, stoppt nsurlstoraged, entfernt die HSTS.plist und startet nsurlstoraged erneut. Das hat bei mir hier unter macOS 10.13.5 gut funktioniert

Ich verwende Mojave (10.14). Ich habe die bisher angegebenen Methoden ausprobiert, um HSTS.plist zu entfernen. Außerdem musste ich Terminal zur Liste Systemeinstellungen > Sicherheit & Datenschutz > Vollständiger Festplattenzugriff hinzufügen, um das Symptom „Vorgang nicht zulässig“ zu beheben, wenn der Inhalt von ~/Library/Cookies/ aufgelistet wird.

Aber das Entfernen der Datei und das Neustarten des Daemons hat nicht funktioniert. Also habe ich versucht, Safari erneut zu öffnen, bin zu Einstellungen, Datenschutz, Website-Daten verwalten gegangen. Dann habe ich alle "Cache-Cookies, lokaler Speicher" für den anstößigen Domainnamen entfernt. Das hat mein Problem gelöst.

Ich kann jetzt nicht sagen, ob das Entfernen von HSTS erforderlich war oder nicht.

Ich habe dasselbe versucht und zweimal neu gestartet, aber nur die Verwendung der Benutzeroberfläche von Safari hat auch für mich funktioniert. Danke dir!

Versuchen Sie es dann, gehen Sie zu Schritt 1: Gehen Sie zum Ordner ~/Library, Schritt 2: Löschen Sie den Safari-Ordner aus ~/Library/Application Support, Schritt 3: Löschen Sie die folgenden Ordner aus ~/Library/Caches, Schritt 4: Löschen Sie dann ~/ Bibliothek/Safari-Ordner PS: Lassen Sie Safari während der oben genannten Vorgänge geschlossen

Antworten auf Ask Different müssen mehr als nur ein Link sein. Es ist in Ordnung, einen Link einzufügen, aber bitte fassen Sie ihn in der Antwort zusammen oder fassen Sie ihn aus. Die Idee ist, die Antwort allein stehen zu lassen.