Come faccio a svuotare completamente i reindirizzamenti memorizzati nella cache da Safari?

20

Dispongo di un dispositivo con un pannello di controllo basato sul Web e impostato accidentalmente per reindirizzare tutte le pagine http a https , anche se alcuni non funzionano su https . Sebbene io abbia corretto questo aspetto, Safari sembra aver memorizzato il reindirizzamento e si rifiuta di dimenticarlo, cercando invece di reindirizzarmi costantemente all'indirizzo https non valido.

Ho già chiuso Safari, eliminato ~/Library/Caches/com.apple.Safari/ e ~/Library/Cookies/HSTS.plist , ma sembra ancora ricordare il reindirizzamento quando lo riapro.

Dove altro potrebbe Safari memorizzare queste informazioni? Posso accedere alla pagina corretta tramite Firefox o Chrome, quindi potrebbe non essere un servizio a livello di sistema, o se è diverso da quello utilizzato dagli altri browser.

Sfortunatamente, poiché il web-panel è fornito da un dispositivo, non credo di poter modificare le intestazioni o reimpostare un reindirizzamento sull'URL corretto, che sembrano essere le opzioni offerte in altre domande simili, quindi ho davvero bisogno di trovare dove sono archiviati questi dati, quindi posso distruggerli con il fuoco.

    
posta Haravikk 16.02.2016 - 00:51
fonte

12 risposte

20

Basato su risposta di quanta :

Non ero in grado di utilizzare launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist perché ho Protezione integrità sistema abilitato:

$ 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

Tuttavia, sono stato in grado di aggirare il problema effettuando le seguenti operazioni:

  • killall nsurlstoraged (arresta il processo inverso dall'utente, ho effettivamente eseguito sudo killall nsurlstoraged , ma sospetto che non sia necessario arrestare anche il nsurlstoraged del sistema, poiché la cache si trova nella cartella Libreria utente)
  • rm -f ~/Library/Cookies/HSTS.plist (elimina la cache HSTS)
  • launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist (riavvia nsurlstoraged)
risposta data 26.06.2017 - 19:56
fonte
5

Se abiliti il menu Sviluppo nelle preferenze di Safari, puoi cancellare la cache da lì (CMD + ALT + E).

Puoi confermare che l'apertura del pannello di controllo del dispositivo nella finestra Privata di Safari (o in un browser Web diverso) funziona correttamente?

    
risposta data 16.02.2016 - 08:54
fonte
4

Basato sulla risposta di @ Haravikk: link

Anyone have any ideas which process is responsible for the ~/Library/Cookies/HSTS.plist file?

fs_usage può aiutarti:

❯❯❯❯ 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

Quindi, possiamo:

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

quindi:

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

e riprova.

    
risposta data 01.06.2017 - 11:44
fonte
3

Avrai dei buoni risultati se usi la riga di comando a curl del dispositivo per assicurarti che non stia facendo il reindirizzamento. Safari non ha davvero un motore per riscrivere gli indirizzi, specialmente se vai nella navigazione privata per rimuovere cronologia, cookie, ecc ...

Se non sei sicuro di aver pulito abbastanza il tuo safari, puoi anche provare aprendo le preferenze di sistema e creando un nuovo / pulito account utente sul Mac e testando il sito su una versione totalmente pulita di Safari dopo aver effettuato il logout da il tuo utente normale.

    
risposta data 16.02.2016 - 19:03
fonte
2

Quindi ho trovato una soluzione al problema, anche se questa non è una risposta definitiva alla domanda reale, quindi non la contrassegnerò come tale finché non trovo più informazioni.

Risulta che il file ~/Library/Cookies/HSTS.plist era effettivamente la fonte del problema, come sospettavo, tuttavia eliminarlo dall'account utente interessato non funziona, anche con Safari chiuso, poiché viene ricreato dopo una quantità sconosciuta di tempo, completa la voce che stava forzando il reindirizzamento non valido.

Quindi la mia soluzione era la seguente:

  1. Assicurati di avere almeno un altro account utente sul tuo Mac (se no, creane uno).
  2. Esci dall'account utente interessato
  3. Accedi a un altro account utente (un account ospite potrebbe non essere sufficiente, a seconda delle restrizioni).
  4. Scopri il nome breve dell'account utente interessato; se non lo sai, il modo migliore per controllare è guardare in Preferenze di Sistema - > Utenti. Di solito, se sarà il nome completo, il sottotitolo e senza spazi, quindi se il tuo nome completo è "John Smith", allora il nome breve potrebbe essere "johnsmith".
  5. Apri una finestra in Terminale, digita su shortname sostituendo "shortname" con il nome breve dell'account utente interessato. Premi invio e, quando richiesto, inserisci la password per l'account interessato.
  6. Ora digita il comando successivo rm ~/Library/Cookies/HSTS.plist e premi invio, questo cancellerà il file di archiviazione HSTS.
  7. Finalmente digita exit , premi invio e chiudi Terminale.

A questo punto è ora possibile accedere nuovamente all'account utente interessato e il reindirizzamento HSTS incriminato dovrebbe scomparire definitivamente.

Ora, mentre questo fornisce una soluzione alternativa utilizzabile, mi piacerebbe davvero sapere perché l'eliminazione del file HSTS.plist dal mio account non funzionava; il fatto che venga ricreato significa che alcuni processi in background ne sono responsabili, il che significa che dovrebbe essere possibile eliminare il file dall'account utente interessato semplicemente arrestando quel processo, cancellando il file, quindi riavviando il processo.

Qualcuno ha qualche idea su quale processo è responsabile del file ~/Library/Cookies/HSTS.plist ? Una volta che sappiamo che dovrebbe essere possibile dare una soluzione più semplice al problema.

    
risposta data 07.01.2017 - 14:43
fonte
1

Ecco un'idea!

Dici che non puoi annullare il reindirizzamento impostando il server per reindirizzare le richieste https su http (dato che non hai accesso da amministratore per farlo).

Ma cosa succederebbe se ingannasse il safari per connettersi a un server diverso che offre questo reindirizzamento inverso?

Potresti installarlo nel file /etc/hosts della tua macchina locale.

Ad esempio, supponiamo che il reindirizzamento memorizzato nella cache sia da http://example.com a https://example.com .

Ora imposta o identifica un URL che puoi richiedere su qualsiasi server del mondo che reindirizzi da https a http. Supponiamo che il server abbia l'indirizzo https://redirecting.example.com .

Quindi cerca l'indirizzo IP di redirecting.example.com . In Terminale puoi fare così:

host redirecting.example.com

Ottieni un risultato simile a questo:

redirecting.example.com has address 69.69.69.69

Ora apri il file / etc / hosts e aggiungi una nuova riga che punta le richieste per example.com all'indirizzo ip di redirecting.example.com, in questo modo:

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

Salva le modifiche e svuota la cache DNS nel terminale in questo modo:

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

Quindi in Safari fai una richiesta per https://example.com la risposta dovrebbe essere un reindirizzamento a http://example.com , a quel punto (dita incrociate) il tuo reindirizzamento Safari di 6 mesi fa verrà sovrascritto.

Una volta terminato, rimuovi la riga che hai aggiunto al tuo file / etc / hosts e scarica di nuovo la cache DNS.

    
risposta data 05.01.2017 - 15:37
fonte
1

Dopo aver provato tutte queste soluzioni, ciò che ha funzionato per me è stato:

  • Rimuovi tutte le istanze del dominio dalla cronologia di Safari
  • Esci da Safari
  • Elimina ~/Library/Cookies/HSTS.plist
  • Riavvia
risposta data 17.08.2017 - 22:30
fonte
1

Ho realizzato una sceneggiatura dalla risposta di Grand Heaslip:

#!/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

Termina con garbo safari, interrompe il salvataggio, rimuove HSTS.plist e avvia nuovamente nsurlstoraged. Questo ha funzionato bene per me qui su macOS 10.13.5

    
risposta data 17.07.2018 - 11:44
fonte
1

i miei due centesimi per il nuovo mojave 10.14 Beta (18A365a)

a) Tu non puoi fermarti definitivamente nsurlstoraged, si rilancia in 2 secondi, anche se sudo

b) tu non puoi eliminare "HSTS.plist": se digiti:

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

hai ottenuto: Operazione non consentita

c) anche se provi a fare:

ls -la ~ / Library / Cookies /

Hai ottenuto: Operazione non consentita

lo stesso per

nano ~ / Library / Cookies / HSTS.plist (file vuoto ..)

quindi non puoi sicuramente accedervi . (forse SIP?)

d) stranamente puoi eliminare se dal Finder:

CMD Sift G "~ / Library / Cookies /"

epuoieliminareconilmouse:

e) più strano: puoi spostarti sul desktop usando il mouse, modifica annuncio posizionalo indietro !

(una vera assurdità, la GUI è più potente di sudo ..)

    
risposta data 18.08.2018 - 15:37
fonte
1

Sto usando Mojave (10.14). Ho provato i metodi dati finora per rimuovere HSTS.plist. Inoltre, avevo bisogno di aggiungere Terminal alle Preferenze di Sistema > Sicurezza e amp; Privacy > Elenco completo di accesso al disco per curare il sintomo "Operazione non consentita" quando si elencano i contenuti di ~ / Library / Cookies /.

Tuttavia, la rimozione del file e il riavvio del daemon non hanno funzionato. Così ho provato ad aprire nuovamente Safari, a Preferenze, Privacy, Gestisci dati del sito web. Quindi ho rimosso tutti i "cookie cache, archiviazione locale" per il nome del dominio incriminato. Che ha risolto il mio problema.

Non posso dire ora se la rimozione di HSTS fosse necessaria o meno.

    
risposta data 11.10.2018 - 03:49
fonte
0

Prima assicurati che il server sia non inviando Intestazione Strict-Transport-Security
Puoi farlo con curl -I ( -I ottiene solo le intestazioni)

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

Se il server sta inviando l'intestazione Strict-Transport-Security, rimuoverlo dal browser non avrà alcun effetto, poiché la volta successiva che si accede al sito verrà nuovamente impostato.

Rimuovi il tuo sito dal database Http Secure Transport Security di Safari

  1. Chiudi Safari
  2. Modifica ~/Library/Cookies/HSTS.plist
    Cerca la voce per il sito a cui desideri accedere tramite http e rimuoverla e salva il file.
    • Preferisco modificare piuttosto che rimuovere in quanto non è necessario rimuovere voci valide.
    • Modifica i file plist utilizzando Xcode, ma se non è installato puoi semplicemente utilizzare un editor di testo.
  3. Riavvia il tuo computer.
    • Invece di riavviare il computer, puoi riavviare nsurlstoraged , ma ciò può essere dovuto a SIP così un riavvio del computer potrebbe essere più semplice. Vedi Risposta di Grant e La risposta di Quanta sul riavvio di nsurlstoraged
risposta data 04.02.2018 - 01:18
fonte
-1

Prova questo allora, vai a Passaggio 1: vai alla cartella ~ / Library, Passaggio 2: Elimina la cartella di Safari da ~ / Libreria / Supporto applicazione, Passaggio 3: Elimina sotto le cartelle da ~ / Library / Caches, Passaggio 4: quindi eliminare ~ / Library / Safari folder P.S: Tieni il safari chiuso durante le operazioni di cui sopra

    
risposta data 06.01.2017 - 10:41
fonte

Leggi altre domande sui tag