Bagaimana Cara Pengalihan Cached Sepenuhnya Dari Safari?

27

Saya memiliki perangkat dengan panel kontrol berbasis web, dan secara tidak sengaja mengaturnya untuk mengarahkan ulang semua httphalaman https, walaupun beberapa tidak berfungsi https. Meskipun saya sudah mengoreksi ini, Safari tampaknya telah menghafal pengalihan dan menolak untuk melupakannya, bukannya terus-menerus berusaha mengarahkan saya ke httpsalamat yang tidak valid .

Saya sudah menutup Safari, telah dihapus ~/Library/Caches/com.apple.Safari/dan ~/Library/Cookies/HSTS.plisttetapi sepertinya masih mengingat pengalihan ketika saya membukanya kembali.

Di mana lagi Safari dapat menyimpan informasi ini? Saya dapat mengakses halaman yang benar melalui Firefox atau Chrome, jadi itu mungkin bukan layanan seluruh sistem, atau jika bukan salah satu yang digunakan browser lain.

Sayangnya karena panel-web disediakan oleh perangkat, saya tidak percaya saya dapat menyesuaikan tajuk atau mengatur pengalihan kembali ke URL yang benar, yang tampaknya merupakan opsi yang ditawarkan dalam pertanyaan serupa lainnya, jadi saya benar-benar perlu mencari tahu di mana ini data sedang disimpan sehingga saya bisa menghancurkannya dengan api.

Haravikk
sumber
Sudahkah Anda mencoba membuang / meminggirkan ~/Library/Safarifolder Anda dan melihat apakah itu memperbaiki masalah? Jika ya, Anda dapat bereksperimen dengan item di dalam folder sampai Anda menemukan file pelakunya.
interestinglythere
Bagaimana Anda mengatur pengalihan? Dengan ekstensi atau apakah ada pengaturan di Safari untuk itu?
owlswipe
Apakah pengalihan masih terjadi dengan jendela penelusuran pribadi?
AllInOne
@ AllInOne ide yang menarik, tapi sayangnya itu masih terjadi di bawah penjelajahan pribadi.
Haravikk

Jawaban:

29

Berdasarkan jawaban kuanta :

Saya tidak dapat menggunakan launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plistkarena saya mengaktifkan Perlindungan Integritas Sistem :

$ 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

Namun saya dapat mengatasinya dengan melakukan hal berikut:

  • killall nsurlstoraged(Hentikan proses nsurlstoraged pengguna Anda; Saya benar-benar berlari sudo killall nsurlstoraged, tapi saya kira tidak perlu menghentikan nsurlstoraged sistem juga, karena cache ada di folder Library pengguna)
  • rm -f ~/Library/Cookies/HSTS.plist (menghapus cache HSTS)
  • launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist (restart nsurlstoraged)
Berikan Heaslip
sumber
Saya tidak bisa cukup menjawab jawaban ini. Tampaknya setidaknya di Sierra, hanya menghapus HSTS.plistfile tidak akan memperbaiki masalah karena akan terus dibangun kembali. Namun, setelah membunuh nsurlstorageddan kemudian menghapus file HSTS — itu berhasil!
nvahalik
1
Terima kasih banyak, terangkat, tetapi saya melakukannya seperti ini. 1. Tutup Safari 2. Edit ~/Library/Cookies/HSTS.plistdan hapus entri untuk situs yang saya inginkan di http 3. Restart komputer
Jason S
Ya, memulai kembali adalah saran yang diberikan semua jawaban lain kepada Anda, tetapi dengan 20 aplikasi terbuka, jauh lebih mudah dan lebih cepat untuk memulai kembali proses nsurlstoraged. Terima kasih @nvahalik!
axello
2
Pembaruan Mojave: perintah rm -f ~/Library/Cookies/HSTS.plistakan kembali Operation not permittedkecuali Anda telah memberikan Akses Disk Penuh ke Terminal.app di System Preferences => Keamanan & Privasi => Privasi. Kalau tidak, solusinya bekerja dengan sempurna! Terima kasih!
joehanna
@ nvahalik Apa yang terjadi tampak lebih aneh daripada file yang sedang dibangun kembali; bahkan tidak rm ~/Library/Cookies/HSTS.plist ; touch ~/Library/Cookies/HSTS.plist ; chmod guo-wrx ~/Library/Cookies/HSTS.plistmembantu saya, tetapi killall nsurlstoragedtidak.
Flash Sheridan
6

Jika Anda mengaktifkan menu Develop di preferensi Safari, Anda dapat menghapus cache dari sana (CMD + ALT + E).

Bisakah Anda mengonfirmasi bahwa membuka panel kontrol perangkat di jendela Private Safari (atau browser web lain) berfungsi dengan benar?

Filip Jurik
sumber
Sayangnya opsi mengembangkan menu tampaknya tidak menghapus pengalihan, juga tidak menutup Safari dan menghapus secara manual ~/Library/Caches/com.apple.Safarisehingga pengalihan harus disimpan di tempat lain. HSTS adalah fitur yang secara tidak sengaja saya aktifkan tetapi saya sudah menghapusnya ~/Library/Cookies/HSTS.plist.
Haravikk
1
Saya juga dapat mengonfirmasi jawaban ini tidak memperbaikinya
malhal
Yang ini berhasil untuk saya
Matthew Cawley
5

Berdasarkan jawaban @ Haravikk: /apple//a/267783/62907

Adakah yang punya ide proses yang bertanggung jawab atas file ~ / Library / Cookies / HSTS.plist?

fs_usage dapat membantu:

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

Jadi kita bisa:

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

kemudian:

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

dan coba lagi.

kuanta
sumber
Terima kasih! Ini berhasil untuk saya. Saya menghapus HSTS.plist berkali-kali (menutup / memulai ulang Safari sebelum dan sesudah) dan selalu dibuat ulang dengan konten yang persis sama seperti sebelumnya. Membongkar nsurlstoraged terlebih dahulu, kemudian menghapus plist dan memulai kembali nsurlstoraged memberi saya plist yang bersih.
lucianf
2
Anda bisa meningkatkan ini dengan menyebutkan Anda harus keluar dan meluncurkan kembali Safari agar bisa berfungsi. Juga daripada menghapus HSTS.plist saya hanya menghapus kunci domain masalah.
Malhal
3

Anda akan mendapatkan hasil yang baik jika Anda menggunakan baris perintah ke curlperangkat untuk memastikan itu tidak melakukan pengalihan. Safari tidak benar-benar memiliki mesin untuk menulis ulang alamat - terutama jika Anda masuk ke penjelajahan pribadi untuk menghapus riwayat, cookie, dll ...

Jika Anda tidak yakin telah cukup membersihkan safari, Anda juga dapat menguji dengan membuka preferensi sistem dan membuat akun pengguna yang bersih / baru di Mac dan menguji situs pada versi Safari yang benar-benar bersih setelah keluar dari pengguna normal Anda. .

bmike
sumber
Jelas tidak ada arahan ulang (fitur yang saya coba sambungkan tidak mendukung HTTPS sama sekali, itulah sebabnya mengaktifkan HSTS untuk seluruh perangkat adalah kesalahan yang sangat buruk); Saya dapat menghubungkan dengan baik-baik saja dari akun pengguna lain dan browser, jadi ada sesuatu yang disimpan di suatu tempat di akun utama saya yang melakukan caching ini :(
Haravikk
“Safari tidak benar-benar memiliki mesin untuk menulis ulang alamat” - Saat ini saya memiliki masalah yang sama terjadi di Safari dengan situs web yang dihosting di laptop saya, dan menggulung (bersama dengan Firefox, Chrome, dan jendela Penjelajahan Pribadi di sana di Safari) pada akun pengguna yang sama memuat situs dengan baik. Sehingga harus sesuatu untuk dilakukan dengan Safari itu sendiri.
Paul D. Waite
3

Jadi saya telah menemukan solusi untuk masalah ini, meskipun ini bukan jawaban yang pasti untuk pertanyaan yang sebenarnya jadi saya tidak akan menandainya seperti itu sampai saya dapat menemukan lebih banyak informasi.

Ternyata file ~/Library/Cookies/HSTS.plistitu memang sumber masalah seperti yang saya duga, namun menghapusnya dari akun pengguna yang terpengaruh tidak berfungsi, bahkan dengan Safari ditutup, karena dibuat kembali setelah waktu yang tidak diketahui, lengkap dengan pelanggarannya. entri yang memaksa pengalihan tidak valid.

Jadi solusi saya adalah sebagai berikut:

  1. Pastikan Anda memiliki setidaknya satu akun pengguna lain di Mac Anda (jika tidak, buat satu).
  2. Logout dari akun pengguna yang terpengaruh.
  3. Login ke akun pengguna lain (akun tamu mungkin tidak cukup, tergantung pada batasan).
  4. Cari tahu nama pendek dari akun pengguna Anda yang terpengaruh; jika Anda tidak tahu maka cara terbaik untuk memeriksa adalah dengan melihat di bawah System Preferences -> Users. Biasanya jika akan menjadi nama lengkap, huruf kecil dan tanpa spasi, jadi jika nama lengkap Anda adalah "John Smith" maka nama pendeknya mungkin "johnsmith".
  5. Buka jendela di Terminal, ketik su shortnameganti "shortname" dengan nama pendek dari akun pengguna yang terpengaruh. Tekan enter dan, saat diminta, masukkan kata sandi untuk akun yang terpengaruh.
  6. Sekarang ketik perintah berikutnya rm ~/Library/Cookies/HSTS.plistdan tekan enter, ini akan menghapus file penyimpanan HSTS.
  7. Akhirnya ketik exit, tekan enter dan tutup Terminal.

Pada titik ini Anda sekarang dapat masuk kembali ke akun pengguna yang terkena dampak dan pengalihan HSTS yang menyinggung harus hilang untuk selamanya.

Sekarang, sementara ini memberikan solusi yang dapat digunakan, saya benar-benar ingin tahu mengapa menghapus file HSTS.plist dari akun saya yang terpengaruh tidak berfungsi; fakta itu diciptakan kembali berarti beberapa proses latar belakang bertanggung jawab untuk itu, yang berarti harus mungkin untuk menghapus file dari akun pengguna yang terpengaruh dengan hanya menghentikan proses itu, menghapus file, kemudian meluncurkan kembali proses.

Adakah yang punya ide proses yang bertanggung jawab atas ~/Library/Cookies/HSTS.plistfile? Setelah kita tahu bahwa itu seharusnya mungkin untuk memberikan perbaikan yang lebih sederhana untuk masalah tersebut.

Haravikk
sumber
2

Ini sebuah ide!

Anda mengatakan Anda tidak dapat membatalkan pengalihan dengan mengatur server untuk mengarahkan kembali https permintaan kembali ke http (karena Anda tidak memiliki akses admin untuk melakukannya).

Tetapi bagaimana jika Anda menipu safari agar terhubung ke server lain yang menawarkan pengalihan terbalik ini?

Anda dapat mengatur ini di /etc/hostsfile mesin lokal Anda .

Misalnya katakanlah pengalihan cache saat ini dari http://example.comke https://example.com.

Sekarang siapkan atau identifikasi url yang dapat Anda minta di server mana pun di dunia yang mengalihkan dari https kembali ke http. Katakanlah server memiliki alamat https://redirecting.example.com.

Kemudian cari alamat IP dari redirecting.example.com. Di Terminal Anda bisa melakukan ini:

host redirecting.example.com

Anda mendapatkan hasil seperti ini:

redirecting.example.com has address 69.69.69.69

Sekarang buka file / etc / hosts Anda dan tambahkan baris baru yang mengarahkan permintaan untuk example.com di alamat ip redirecting.example.com, seperti:

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

Simpan perubahan Anda dan hapus cache DNS Anda di terminal seperti:

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

Kemudian di Safari, buat permintaan agar https://example.comresponsnya harus dialihkan kembali http://example.com, pada titik mana (jari bersilang) pengalihan Safari Anda dari 6 bulan lalu akan ditimpa.

Setelah selesai hapus baris yang Anda tambahkan ke file / etc / hosts dan siram kembali cache DNS Anda.

Semua dalam satu
sumber
Meskipun ini ide yang bagus, itu tidak menyelesaikan masalah sebenarnya; Saya tidak mencari solusi, tetapi saya ingin tahu di mana redirect ini di-cache sehingga Safari terus menggunakannya meskipun tidak lagi valid (server tidak memiliki HSTS diaktifkan, saya hanya mengaktifkannya secara singkat karena kesalahan ). Itu harus disimpan di suatu tempat, tetapi saya tidak tahu di mana.
Haravikk
Ini bukan apa yang saya sebut solusi, karena saya berharap ini akan menyelesaikan masalah yang sebenarnya . Ini hanya berfungsi berdasarkan fakta bahwa Anda tidak memiliki kontrol perangkat. Tapi saya mendengar Anda - akan menyenangkan untuk dapat menghapus pengaturan cache secara langsung. Apakah Pratinjau Teknologi Safari juga menunjukkan perilaku buruk?
AllInOne
Sayangnya begitu; Saya tidak berpikir itu masalah dengan Safari itu sendiri seperti itu, tetapi lebih pada beberapa layanan macOS yang tergantung, karena memang muncul yang ~/Library/Cookies/HSTS.plistmerupakan pelakunya, tetapi menghapusnya dari akun yang terpengaruh tidak berfungsi (karena dibuat kembali beberapa waktu kemudian, lengkap dengan redirect buruk). Tidak yakin proses apa yang melakukannya.
Haravikk
2

Setelah mencoba semua solusi ini, yang berhasil bagi saya adalah:

  • Hapus semua instance domain dari riwayat Safari
  • Keluar dari Safari
  • Menghapus ~/Library/Cookies/HSTS.plist
  • Mengulang kembali
Edward Loveall
sumber
2

Dua sen saya untuk macOS Mojave 10.14 Beta baru (18A365a)

a) Anda tidak dapat berhenti secara pasti nsurlstoraged, itu diluncurkan kembali dalam 2 detik, bahkan jika sudo

b) Anda tidak dapat menghapus "HSTS.plist": jika Anda mengetik:

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

Anda mendapatkan: Operasi tidak diizinkan

c) bahkan jika Anda mencoba:

ls -la ~/Library/Cookies/

Anda mendapatkan: Operasi tidak diizinkan

sama untuk

nano ~/Library/Cookies/HSTS.plist 

(file kosong ..)

Jadi, Anda tidak dapat dengan pasti mengaksesnya . (mungkin SIP?)

d) anehnya Anda dapat menghapus jika dari Finder:

CMD Shift G "~ / Perpustakaan / Cookie /"

masukkan deskripsi gambar di sini

dan Anda dapat menghapus dengan mouse:

masukkan deskripsi gambar di sini

e) lebih aneh: Anda dapat pindah ke Desktop menggunakan mouse, edit dan letakkan kembali !

(omong kosong nyata, GUI lebih kuat daripada sudo ..)

ingconti
sumber
2

Di Safari, Firefox, dan Chrome juga, yang harus Anda lakukan adalah membuka bilah sisi pengembang , pilih tab jaringan, dan nonaktifkan cachin g.

Di Safari itu adalah tabung yang dicoret, yang biru di sebelah logo tempat sampah. Aktifkan itu, dan redirect permanen yang lama harus diabaikan. Safari menonaktifkan chaching 503 redirect permanen

Manfaat terbesar adalah Anda tidak perlu mengacaukan file, Anda tidak akan menghapus semua entri HTST dan kehilangan manfaat keamanan. Juga berfungsi di seluruh browser.

luckydonald
sumber
Meskipun ini sangat berguna untuk diketahui, dapatkah Anda mengonfirmasi apakah ini berfungsi sebagai solusi permanen? yaitu- jika cache diaktifkan kembali, akankah masalah muncul kembali, atau apakah menonaktifkan sementara membilasnya?
Haravikk
1
@ Harvikk dalam pengujian saya itu tidak akan kembali menggunakan redirect permanen ketika halaman baru bisa dimuat sebagai gantinya. Bahkan setelah menutup jendela pengembangan, jika itu menjawab pertanyaan Anda
luckydonald
1

Pertama pastikan server tidak mengirim header Strict-Transport-Security
Anda dapat melakukan ini dengan curl -I( -Ihanya mendapatkan header)

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

Jika server mengirim tajuk Strict-Transport-Security, menghapusnya dari browser Anda tidak akan berpengaruh, karena lain kali Anda mengakses situs, itu akan diatur lagi.

Hapus situs Anda dari basis data Http Secure Transport Security Safari

  1. Tutup Safari
  2. Edit ~/Library/Cookies/HSTS.plist
    Cari entri untuk situs yang ingin Anda akses melalui http dan hapus, dan simpan file.
    • Saya lebih suka mengedit daripada menghapus karena tidak perlu menghapus entri yang valid.
    • Saya mengedit file plist menggunakan Xcode, tetapi jika tidak diinstal Anda dapat menggunakan editor teks.
  3. Hidupkan Kembali komputer Anda.
    • Alih-alih me-restart komputer Anda, Anda dapat me-restart nsurlstoragedtapi itu bisa terlibat karena SIP sehingga me-restart komputer mungkin lebih sederhana. Lihat jawaban Grant dan jawaban Quanta tentang memulai kembalinsurlstoraged
Jason S
sumber
1

Saya membuat skrip dari jawaban 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

Ini dengan anggun mengakhiri safari, berhenti nsurlstoraged, menghapus HSTS.plist, dan mulai nsurlstoraged lagi. Ini bekerja dengan baik untuk saya di sini di macOS 10.13.5

Martin Emrich
sumber
1

Saya menggunakan Mojave (10.14). Saya mencoba metode yang diberikan sejauh ini untuk menghapus HSTS.plist. Selain itu, saya perlu menambahkan Terminal ke System Preferences> Security & Privacy> daftar Full Disk Access untuk menyembuhkan gejala "Operasi tidak diizinkan" ketika daftar isi ~ / Library / Cookies /.

Tetapi, menghapus file dan memulai ulang daemon tidak berhasil. Jadi saya mencoba membuka Safari lagi, pergi ke Preferensi, Privasi, Kelola Data Situs Web. Lalu saya menghapus semua "cookie cache, penyimpanan lokal" untuk nama domain yang menyinggung. Itu memecahkan masalah saya.

Saya tidak bisa mengatakan sekarang apakah menghapus HSTS diperlukan atau tidak.

Bob Peterson
sumber
Saya sudah mencoba yang sama dan me - reboot dua kali, tetapi hanya menggunakan UI Safari yang bekerja untuk saya juga. Terima kasih!
Bart Verkoeijen
-1

Coba ini, lanjutkan ke Langkah 1: Pergi ke ~ / Perpustakaan folder, Langkah 2: Hapus folder Safari dari ~ / Perpustakaan / Dukungan Aplikasi, Langkah 3: Hapus folder di bawah ini dari ~ / Perpustakaan / Tembolok, Langkah 4: lalu Hapus ~ / Perpustakaan / folder Safari PS: Tutup safari selama operasi di atas

Omi Harjani
sumber
1
Jawaban tentang Tanya yang berbeda harus lebih dari sekadar tautan. Tidak apa-apa untuk memasukkan tautan, tapi tolong rangkum atau kutip dalam jawabannya. Idenya adalah untuk membuat jawabannya berdiri sendiri.
nohillside