38 votes

Comment supprimer complètement les redirections en cache de Safari ?

J'ai un appareil avec un panneau de contrôle basé sur le Web, et je l'ai accidentellement configuré pour rediriger toutes les données de la base de données. http pages à https même si certains ne fonctionnent pas sur https . Bien que j'aie depuis corrigé cette erreur, Safari semble avoir mémorisé la redirection et refuse de l'oublier, essayant constamment de me rediriger vers le site non valide. https adresse.

J'ai déjà fermé Safari, effacé ~/Library/Caches/com.apple.Safari/ y ~/Library/Cookies/HSTS.plist mais il semble toujours se souvenir de la redirection lorsque je le rouvre.

Où d'autre Safari pourrait-il stocker ces informations ? Je peux accéder à la page correcte via Firefox ou Chrome, il ne s'agit donc peut-être pas d'un service à l'échelle du système, ou si c'est le cas, ce n'est pas un service utilisé par les autres navigateurs.

Malheureusement, comme le panneau web est fourni par un appareil, je ne pense pas pouvoir ajuster les en-têtes ou configurer une redirection vers l'URL correcte, qui semblent être des options proposées dans d'autres questions similaires. J'ai donc vraiment besoin de trouver où ces données sont stockées afin de pouvoir les détruire par le feu.

0 votes

0 votes

Avez-vous essayé de mettre à la poubelle ou de mettre de côté votre ~/Library/Safari et voir si cela résout le problème ? Si c'est le cas, vous pouvez expérimenter avec les éléments du dossier jusqu'à ce que vous trouviez le fichier coupable.

0 votes

Comment avez-vous défini la redirection ? Avec une extension ou un paramètre de Safari ?

3voto

Oskar Points 1242

Vous obtiendrez de bons résultats si vous utilisez la ligne de commande pour curl l'appareil pour s'assurer qu'il ne fait pas la redirection. Safari n'a pas vraiment de moteur pour réécrire les adresses - surtout si vous passez en navigation privée pour supprimer tout historique, cookies, etc...

Si vous n'êtes pas sûr d'avoir suffisamment nettoyé votre Safari, vous pouvez également le tester en ouvrant les préférences système et en créant un compte utilisateur propre/nouveau sur le Mac et tester le site sur une version totalement propre de Safari après vous être déconnecté de votre utilisateur normal.

0 votes

Il n'y a pas de redirection (la fonction à laquelle j'essaie de me connecter ne prend pas du tout en charge HTTPS, ce qui explique pourquoi l'activation de HSTS pour l'ensemble de l'appareil était une terrible, terrible erreur) ; je peux me connecter sans problème à partir d'autres comptes d'utilisateur et navigateurs, il y a donc quelque chose de stocké quelque part sur mon compte principal qui met cela en cache :(

0 votes

"Safari n'a pas vraiment de moteur pour réécrire les adresses" - J'ai actuellement le même problème dans Safari avec un site web hébergé sur mon ordinateur portable, et curl (avec Firefox, Chrome, et une fenêtre de navigation privée dans Safari) sur le même compte utilisateur charge le site sans problème. Cela doit donc être quelque chose à faire avec Safari lui-même.

3voto

Edward Loveall Points 131

Après avoir essayé toutes ces solutions, ce qui a fonctionné pour moi a été :

  • Supprimer toutes les instances du domaine de l'historique de Safari
  • Quitter Safari
  • Supprimer ~/Library/Cookies/HSTS.plist
  • Redémarrer

0 votes

C'est la bonne réponse pour effacer le cache des redirections 301. Aucune des solutions ci-dessus ne fonctionne si vous ne supprimez pas également les instances du domaine dans l'historique de Safari.

2voto

AllInOne Points 1543

Voilà une idée !

Vous dites que vous ne pouvez pas annuler la redirection en configurant le serveur pour qu'il redirige les demandes https vers http (car vous n'avez pas d'accès administrateur pour le faire).

Mais si vous astuce safari à se connecter à un autre serveur qui offre cette redirection inverse ?

Vous pouvez le configurer dans le répertoire de votre machine locale /etc/hosts fichier.

Par exemple, disons que la redirection actuelle en cache est de http://example.com à https://example.com .

Maintenant, configurez ou identifiez une url que vous pouvez demander sur n'importe quel serveur dans le monde qui redirige de https vers http. Disons que ce serveur a l'adresse suivante https://redirecting.example.com .

Cherchez ensuite l'adresse IP de redirecting.example.com . Dans le Terminal, vous pouvez faire comme ceci :

host redirecting.example.com

Vous obtenez un résultat semblable à celui-ci :

redirecting.example.com has address 69.69.69.69

Maintenant, ouvrez votre fichier /etc/hosts et ajoutez une nouvelle ligne qui dirige les requêtes pour example.com vers l'adresse ip de redirecting.example.com, comme ceci :

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

Sauvegardez vos modifications et videz votre cache DNS dans le terminal comme suit :

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

Ensuite, dans Safari, faites une demande pour https://example.com la réponse devrait être une redirection vers http://example.com A ce moment-là (croisons les doigts), votre redirection Safari d'il y a 6 mois sera écrasée.

Après avoir terminé, supprimez la ligne que vous avez ajoutée à votre fichier /etc/hosts et videz à nouveau votre cache DNS.

0 votes

Je ne cherche pas de solutions de contournement, mais plutôt à savoir où cette redirection est mise en cache de sorte que Safari continue à l'utiliser alors qu'elle n'est plus valide (le serveur n'a pas activé le HSTS, je l'ai simplement activé brièvement par erreur). Il s'agit de doit être stocké quelque part, mais je n'arrive pas à trouver où.

0 votes

Ce n'est pas ce que j'appellerais une solution de rechange, car je m'attends à ce qu'elle résolve les problèmes suivants le problème réel . Cela permet uniquement de contourner le fait que vous ne contrôlez pas l'appareil. Mais je vous comprends - ce serait bien de pouvoir effacer directement les paramètres de la mémoire cache. Est-ce que Safari Technology Preview présente également ce mauvais comportement ?

0 votes

Malheureusement, je ne pense pas qu'il s'agisse d'un problème avec Safari en tant que tel, mais plutôt avec un service MacOS dont il dépend. ~/Library/Cookies/HSTS.plist était le coupable, mais le supprimer du compte concerné ne fonctionne pas (car il est recréé quelque temps plus tard, avec une mauvaise redirection). Je ne sais pas exactement quel processus est à l'origine de ce problème.

2voto

ingconti Points 149

Mes deux cents pour le nouveau MacOS Mojave 10.14 Beta (18A365a)

a) Vous ne peut s'arrêter définitivement nsurlstoraged il redémarre au bout de 2 secondes, même si sudo

b) vous ne peut pas supprimer "HSTS.plist" : si vous tapez :

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

vous obtenez : Opération non autorisée

c) même si vous essayez :

ls -la ~/Library/Cookies/

vous obtenez : Opération non autorisée

la même chose pour

nano ~/Library/Cookies/HSTS.plist 

(fichier vide..)

Alors vous ne peut pas définitivement accès il. (peut-être SIP ?)

d) étrangement vous peut supprimer si du Finder :

CMD Shift G "~/Bibliothèque/Cookies/"

enter image description here

et vous pouvez supprimer avec la souris :

enter image description here

e) plus étrange : Vous pouvez vous déplacer vers le bureau à l'aide de la souris, editar y remettez-le en place ¡!

(un vrai non-sens, l'interface graphique est plus puissante que sudo..)

0 votes

C'est dû à l'autorisation d'accès complet au disque, comme expliqué ici. apple.stackexchange.com/questions/227662/

1voto

Jason S Points 677

Assurez-vous d'abord que le serveur est no l'envoi du En-tête Strict-Transport-Security
Vous pouvez le faire avec curl -I ( -I ne récupère que les en-têtes)

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

Si le serveur envoie l'en-tête Strict-Transport-Security, le supprimer de votre navigateur n'aura aucun effet, car la prochaine fois que vous accéderez au site, il sera à nouveau défini.

Supprimez votre site de la base de données Http Secure Transport Security de Safari

  1. Fermer le safari
  2. Modifier ~/Library/Cookies/HSTS.plist
    Recherchez l'entrée pour le site auquel vous voulez accéder par http et supprimez-la, puis enregistrez le fichier.
    • Je préfère éditer plutôt que supprimer car il n'y a pas besoin de supprimer des entrées valides.
    • J'édite les fichiers plist en utilisant Xcode, mais s'il n'est pas installé, vous pouvez simplement utiliser un éditeur de texte.
  3. Redémarrez votre ordinateur.
    • Au lieu de redémarrer votre ordinateur, vous pouvez redémarrer nsurlstoraged mais cela peut être impliqué en raison de SIP donc un redémarrage de l'ordinateur peut être plus simple. Voir Réponse de Grant y La réponse de Quanta sur le redémarrage nsurlstoraged

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X