¿Cómo puedo totalmente al ras en caché redirecciones desde Safari?

27

Tengo un dispositivo con un panel de control basado en web, y accidentalmente puse a redirigir todas las httppáginas a https, a pesar de que algunos no funcionan más https. Aunque desde entonces he corregido este, Safari parece haber memorizado la redirección y se niega a olvidar que, en lugar de intentar constantemente me redirigir a la inválido httpsdirección.

Yo ya he cerrado Safari, limpiado ~/Library/Caches/com.apple.Safari/y ~/Library/Cookies/HSTS.plistpero todavía parece estar recordando la redirección cuando vuelve a abrir.

¿Dónde más podría ser Safari almacenar esta información? Puedo acceder a la página correcta a través de Firefox o Chrome, por lo que no puede ser un gran servicio del sistema, o si es que no es uno que los otros navegadores utilizan.

Desafortunadamente, debido a que el panel web es proporcionado por un dispositivo, no creo que pueda ajustar los encabezados o configurar una redirección a la URL correcta, que parecen ser opciones ofrecidas en otras preguntas similares, por lo que realmente necesito averiguar dónde los datos se almacenan para que pueda destruirlo con fuego.

Haravikk
fuente
¿Has intentado tirar a la basura / mover a un lado tu ~/Library/Safaricarpeta y ver si eso soluciona el problema? Si lo hace, puede experimentar con elementos dentro de la carpeta hasta que encuentre el archivo culpable.
interestinglythere
¿Cómo se configura la redirección? Con una extensión o hay un ajuste en Safari para eso?
owlswipe
¿La redirección siguen sucediendo con una ventana de navegación privada?
AllInOne
@AllInOne idea interesante, pero desafortunadamente todavía ocurre bajo navegación privada.
Haravikk

Respuestas:

29

Basado en la respuesta de quanta :

No pude usarlo launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plistporque tengo habilitada la Protección de integridad del sistema :

$ 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

Sin embargo, pude solucionarlo haciendo lo siguiente:

  • killall nsurlstoraged(detiene el proceso nsurlstoraged de su usuario, en realidad me encontré sudo killall nsurlstoraged, pero sospecho que no es necesario detener el sistema está nsurlstoraged también, ya que la memoria caché se encuentra en la carpeta de la biblioteca de usuario)
  • rm -f ~/Library/Cookies/HSTS.plist (elimina el caché HSTS)
  • launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist (reinicia nsurlstoraged)
Grant Heaslip
fuente
No puedo votar esta respuesta lo suficiente. Parece que, al menos en Sierra, la simple eliminación del HSTS.plistarchivo no se solucionará el problema, ya que seguirá siendo reconstruido. Sin embargo, después de matar nsurlstoragedy luego eliminar el archivo HSTS, ¡eso funcionó!
nvahalik
1
Muchas gracias, voté positivamente, pero lo hice así. 1. Cierre Safari 2. Edite ~/Library/Cookies/HSTS.plisty elimine la entrada del sitio que deseo en http 3. Reinicie la computadora
Jason S
Sí, reiniciar es el consejo que le dan todas las otras respuestas, pero con 20 aplicaciones abiertas, es mucho más conveniente y rápido reiniciar el proceso nsurlstoraged. Gracias @nvahalik!
axello
2
Actualización de Mojave: el comando rm -f ~/Library/Cookies/HSTS.plistvolverá a Operation not permittedmenos que haya otorgado Acceso total al disco a Terminal.app en Preferencias del sistema => Seguridad y privacidad => Privacidad. De lo contrario, la solución funcionó a la perfección. ¡Gracias!
joehanna
@ nvahalik Lo que está pasando parece aún más extraño que el archivo que se está reconstruyendo; Ni siquiera rm ~/Library/Cookies/HSTS.plist ; touch ~/Library/Cookies/HSTS.plist ; chmod guo-wrx ~/Library/Cookies/HSTS.plistme ayudó, pero lo killall nsurlstoragedhizo.
Flash Sheridan
6

Si habilita el menú Desarrollar en las preferencias de Safari, puede borrar el caché desde allí (CMD + ALT + E).

¿Puede confirmar que abrir el panel de control del dispositivo en la ventana Privada de Safari (o en un navegador web diferente) funciona correctamente?

Filip Jurik
fuente
Desafortunadamente, la opción de menú de desarrollo no parece borrar la redirección, tampoco cerrar Safari y eliminar manualmente, ~/Library/Caches/com.apple.Safaripor lo que la redirección debe almacenarse en otro lugar. HSTS fue la característica que accidentalmente habilité pero que ya he eliminado ~/Library/Cookies/HSTS.plist.
Haravikk
1
También puedo confirmar que esta respuesta no lo soluciona
malhal
Este funcionó para mí
Matthew Cawley
5

Basado en la respuesta de @ Haravikk: /apple//a/267783/62907

Alguien tiene alguna idea qué proceso es el responsable del fichero ~ / Library / Cookies / HSTS.plist?

fs_usage puede ayudar:

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

Para que podamos:

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

luego:

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

e intenta de nuevo.

quanta
fuente
¡Gracias! Esto funcionó para mí. Eliminé HSTS.plist muchas veces (cerrando / reiniciando Safari antes y después) y siempre se estaba recreando con exactamente el mismo contenido que antes. Descargando nsurlstoraged primero, luego eliminando el plist y reiniciando nsurlstoraged me dio un plist limpio.
lucianf
2
Se podría mejorar esta mencionando que necesita para dejar de fumar y relanzar Safari para que funcione. También en lugar de borrar el HSTS.plist que acaba de eliminar la clave del dominio del problema.
malhal
3

Obtendrá buenos resultados si utiliza la línea de comando para curlel dispositivo para asegurarse de que no está haciendo la redirección. Safari realmente no tiene un motor para reescribir direcciones, especialmente si ingresa a la navegación privada para eliminar cualquier historial, cookies, etc.

Si no está seguro de haber limpiado el suficiente Safari, también puede prueba por las preferencias del sistema de apertura y hacer una nueva cuenta limpia / usuario en el Mac y probar el sitio en una versión totalmente limpia de Safari después de salir de su usuario normal .

bmike
fuente
Definitivamente no hay redireccionamiento (la función a la que estoy tratando de conectar no es compatible con HTTPS en absoluto, por lo que habilitar HSTS para todo el dispositivo fue un error terrible, terrible); Puedo conectarme bien desde otras cuentas de usuario y navegadores, por lo que hay algo almacenado en algún lugar de mi cuenta principal que está almacenando esto en caché :(
Haravikk
"Safari realmente no tiene un motor para reescribir direcciones": actualmente tengo el mismo problema que ocurre en Safari con un sitio web alojado en mi computadora portátil y curl (junto con Firefox, Chrome y una ventana de navegación privada allí mismo en Safari) en la misma cuenta de usuario carga el sitio muy bien. Por lo tanto, debe tener algo que ver con el propio Safari.
Paul D. Waite el
3

Así que he encontrado una solución al problema, aunque esta no es una respuesta definitiva a la pregunta real, por lo que no la marcaré como tal hasta que pueda encontrar más información.

Resulta que el archivo ~/Library/Cookies/HSTS.plistfue de hecho la fuente del problema, como sospeché, sin embargo, eliminarlo de la cuenta de usuario afectada no funciona, incluso con Safari cerrado, ya que se vuelve a crear después de un período de tiempo desconocido, completa con la infracción entrada que estaba forzando la redirección no válida.

Entonces mi solución fue la siguiente:

  1. Asegúrese de tener al menos otra cuenta de usuario en su Mac (si no, cree una).
  2. Cierre de sesión de la cuenta de usuario afectada.
  3. Inicie sesión en una cuenta de usuario diferente (una cuenta de invitado puede no ser suficiente, dependiendo de las restricciones).
  4. Averigüe el nombre corto de su cuenta de usuario afectada; si no lo sabe, la mejor manera de verificarlo es buscar en Preferencias del sistema -> Usuarios Por lo general, si será el nombre completo, en minúsculas y sin espacios, por lo que si su nombre completo es "John Smith", entonces el nombre corto puede ser "johnsmith".
  5. Abra una ventana en Terminal, escriba su shortnamereemplazando "nombre corto" con el nombre corto de la cuenta de usuario afectada. Presione enter y, cuando se le solicite, ingrese la contraseña de la cuenta afectada.
  6. Ahora escriba el siguiente comando rm ~/Library/Cookies/HSTS.plisty presione enter, esto eliminará el archivo de almacenamiento HSTS.
  7. Finalmente escriba exit, presione enter y cierre la Terminal.

En este punto, ahora puede volver a iniciar sesión en la cuenta de usuario afectada y la redirección HSTS ofensiva debería desaparecer para siempre.

Ahora, si bien esto proporciona una solución utilizable, realmente me gustaría saber por qué no funcionó eliminar el archivo HSTS.plist de mi cuenta afectada; el hecho de que se vuelva a crear significa que algún proceso en segundo plano es responsable de ello, lo que significa que debería ser posible eliminar el archivo de la cuenta de usuario afectada simplemente deteniendo ese proceso, eliminando el archivo y luego reiniciando el proceso.

¿Alguien tiene alguna idea de qué proceso es responsable del ~/Library/Cookies/HSTS.plistarchivo? Una vez que sepamos que debería ser posible dar una solución más simple al problema.

Haravikk
fuente
2

Aquí hay una idea!

Dice que no puede deshacer la redirección configurando el servidor para redirigir las solicitudes https de nuevo a http (ya que no tiene acceso de administrador para hacerlo).

Pero, ¿qué sucede si engañas a Safari para que se conecte a un servidor diferente que ofrece esta redirección inversa?

Puede configurar esto en el /etc/hostsarchivo de su máquina local .

Por ejemplo, supongamos que la redirección actual en caché es de http://example.coma https://example.com.

Ahora configure o identifique una URL que puede solicitar en cualquier servidor del mundo que redirija desde https a http. Digamos que el servidor tiene la dirección de https://redirecting.example.com.

Luego busque la dirección IP de redirecting.example.com. En Terminal puedes hacer así:

host redirecting.example.com

Obtienes un resultado algo como esto:

redirecting.example.com has address 69.69.69.69

Ahora abra su archivo / etc / hosts y agregue una nueva línea que apunte las solicitudes de example.com a la dirección IP de redirecting.example.com, así:

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

Guarde sus cambios y borre su caché DNS en la terminal de esta manera:

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

Luego, en Safari, la solicitud de https://example.comrespuesta debe ser una redirección de regreso http://example.com, en cuyo punto (con los dedos cruzados) se sobrescribirá su redirección de Safari de hace 6 meses.

Cuando termine, elimine la línea que agregó a su archivo / etc / hosts y vacíe su caché DNS nuevamente.

Todo en uno
fuente
Si bien es una buena idea, no resuelve el problema real; No estoy buscando soluciones, sino que quiero saber dónde se está almacenando en caché esta redirección de modo que Safari continúe usándola aunque ya no sea válida (el servidor no tiene HSTS habilitado, simplemente lo habilité brevemente por error ) Se debe ser almacenada en alguna parte, pero no puedo averiguar dónde.
Haravikk
Esto no es lo que yo llamaría una solución, ya que espero que resuelva el problema real . Solo funciona por el hecho de que no tienes control del dispositivo. Pero sí te escucho: sería bueno poder borrar la configuración en caché directamente. ¿Safari Technology Preview también exhibe el mal comportamiento?
AllInOne
Lamentablemente sí; No creo que sea un problema con Safari en sí mismo, sino con algún servicio de macOS del que depende, ya que parece ~/Library/Cookies/HSTS.plistser el culpable, pero eliminarlo de la cuenta afectada no funciona (ya que se recrea algún tiempo después, completa con una mala redirección). Sin embargo, no estoy seguro de qué proceso lo está haciendo.
Haravikk
2

Después de probar todas estas soluciones, lo que funcionó para mí fue:

  • Eliminar todas las instancias del dominio del historial de Safari
  • Salir de Safari
  • Borrar ~/Library/Cookies/HSTS.plist
  • Reiniciar
Edward Loveall
fuente
2

Mis dos centavos para el nuevo macOS Mojave 10.14 Beta (18A365a)

a) No puedes detenerte definitivamente nsurlstoraged, se relanza en 2 segundos, incluso si sudo

b) no puede eliminar "HSTS.plist": si escribe:

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

obtienes: Operación no permitida

c) incluso si lo intentas:

ls -la ~/Library/Cookies/

obtienes: Operación no permitida

lo mismo para

nano ~/Library/Cookies/HSTS.plist 

(archivo vacío..)

Entonces definitivamente no puedes acceder a él. (tal vez SIP?)

d) extrañamente puedes eliminarlo desde Finder:

CMD Shift G "~ / Biblioteca / Cookies /"

ingrese la descripción de la imagen aquí

y puedes borrar con el mouse:

ingrese la descripción de la imagen aquí

e) más extraño: puede moverse al escritorio con el mouse, editar y volver a colocarlo .

(una verdadera tontería, la GUI es más poderosa que sudo ..)

ingconti
fuente
2

También en Safari, Firefox y Chrome, todo lo que tiene que hacer es abrir la barra lateral del desarrollador , seleccionar la pestaña de red y desactivar la cachin g.

En Safari, eso es un tubo tachado, el azul al lado del logo de la papelera. Active eso, y la vieja redirección permanente debe ser ignorada. Safari deshabilita chaching 503 redirecciones permanentes

El mayor beneficio es que no tiene que meterse con los archivos, no eliminará todas las entradas de HTST y perderá los beneficios de seguridad. También funciona en todos los navegadores.

luckydonald
fuente
Si bien es muy útil saber esto, ¿puede confirmar si funciona como una solución permanente? es decir, si el caché se vuelve a habilitar, ¿volverá a surgir el problema o lo deshabilitará temporalmente?
Haravikk
1
@Haravikk en mis pruebas no volvería a usar el redireccionamiento permanente cuando se pudiera cargar una nueva página. Incluso después de cerrar la ventana de desarrollo, si eso responde a su pregunta
luckydonald
1

Primero asegúrese de que el servidor no esté enviando el encabezado Strict-Transport-Security
. Puede hacerlo curl -I( -Isolo obtiene los encabezados)

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

Si el servidor está enviando el encabezado Strict-Transport-Security, eliminarlo de su navegador no tendrá ningún efecto, ya que la próxima vez que acceda al sitio, se configurará nuevamente.

Elimine su sitio de la base de datos Http Secure Transport Security de Safari

  1. Cerrar Safari
  2. Editar ~/Library/Cookies/HSTS.plist
    Busque la entrada del sitio al que desea acceder a través de http y elimínela, y guarde el archivo.
    • Prefiero editar en lugar de eliminar, ya que no es necesario eliminar entradas válidas.
    • Edito archivos plist usando Xcode, pero si no está instalado, puede usar un editor de texto.
  3. Reinicia tu computadora.
    • En lugar de reiniciar su computadora, puede reiniciar, nsurlstoragedpero eso puede estar involucrado debido a SIP, por lo que un reinicio de la computadora puede ser más simple. Véase la respuesta de Grant y la respuesta de Quanta sobre el reinicionsurlstoraged
Jason S
fuente
1

Hice un guión a partir de la respuesta de 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

Finaliza con elegancia el safari, detiene nsurlstoraged, elimina la lista HSTS.plist e inicia nsurlstoraged nuevamente. Esto funcionó bien para mí aquí en macOS 10.13.5

Martin Emrich
fuente
1

Estoy usando Mojave (10.14). Probé los métodos dados hasta ahora para eliminar HSTS.plist. Además, necesitaba agregar Terminal a la lista de Preferencias del sistema> Seguridad y privacidad> Acceso completo al disco para curar el síntoma "Operación no permitida" al enumerar el contenido de ~ / Library / Cookies /.

Pero, eliminar el archivo y reiniciar el demonio no funcionó. Así que intenté abrir Safari nuevamente, fui a Preferencias, Privacidad, Administrar datos del sitio web. Luego eliminé todas las "cookies de caché, almacenamiento local" para el nombre de dominio ofensivo. Eso resolvió mi problema.

No puedo decir ahora si fue necesario eliminar HSTS o no.

Bob Peterson
fuente
He intentado lo mismo y reiniciar dos veces, pero solo usar la interfaz de usuario de Safari también funcionó para mí. ¡Gracias!
Bart Verkoeijen
-1

Intente esto, vaya al Paso 1: vaya a la carpeta ~ / Biblioteca, Paso 2: Elimine la carpeta Safari de ~ / Biblioteca / Soporte de aplicaciones, Paso 3: Elimine las carpetas siguientes de ~ / Biblioteca / Caches, Paso 4: luego Elimine ~ / PD de la carpeta Biblioteca / Safari: Mantenga el safari cerrado durante las operaciones anteriores

Omi Harjani
fuente
1
Respuestas sobre Diferente Haz necesidad de ser más que un simple enlace. Está bien incluir un enlace, pero resumirlo o extraerlo en la respuesta. La idea es hacer que la respuesta sea independiente.
nohillside