Safariからキャッシュされたリダイレクトを完全にフラッシュするにはどうすればよいですか?


27

Webベースのコントロールパネルを備えたデバイスを使用しており、一部のデバイスでは動作しませんが、誤ってすべてのhttpページをにリダイレクトするように設定しhttpsていますhttps。私はその後これを修正しましたが、Safariはリダイレクトを記憶しているようで、それを忘れることを拒否している代わりに、常に無効なhttpsアドレスにリダイレクトしようとします。

私はすでにSafariを閉じてクリア~/Library/Caches/com.apple.Safari/しました~/Library/Cookies/HSTS.plistが、再度開くとリダイレクトを覚えているようです。

Safariはこの情報を他にどこに保存できますか?FirefoxまたはChromeを介して正しいページにアクセスできるので、システム全体のサービスではないか、他のブラウザーが使用するサービスではない場合があります。

残念ながら、Webパネルはデバイスによって提供されるため、ヘッダーを調整したり、他の同様の質問で提供されているオプションのように正しいURLにリダイレクトを設定したりできるとは思わないので、どこでこれを見つける必要がありますデータが保存されているので、火で破壊できます。



~/Library/Safariフォルダをゴミ箱に移動/移動して、問題が解決するかどうかを確認しましたか?存在する場合、原因ファイルが見つかるまで、フォルダー内のアイテムを試すことができます。
興味深いことに、

どのようにリダイレクトを設定しましたか?拡張機能を使用するか、そのためにSafariに設定がありますか?
owlswipe 16

プライベートブラウジングウィンドウでもリダイレクトは発生しますか?
AllInOne

@AllInOneの興味深いアイデアですが、残念ながらプライベートブラウジングでも発生します。
ハラヴィック

回答:


29

量子の答えに基づいて:

システム整合性保護が有効になっlaunchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plistているため、使用できませんでした。

$ 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

ただし、次の操作を行うことで回避できました。

  • killall nsurlstoraged(ユーザーのnsurlstoragedプロセスを停止します。実際に実行sudo killall nsurlstoragedしましたが、キャッシュはユーザーライブラリフォルダーにあるため、システムのnsurlstoragedも停止する必要はないと思います)
  • rm -f ~/Library/Cookies/HSTS.plist (HSTSキャッシュを削除します)
  • launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist (nsurlstoragedを再起動します)

この答えを十分に支持することはできません。少なくともSierraでは、単にHSTS.plistファイルを削除しても、再構築が継続されるため、問題は解決しないようです。ただし、HSTSファイルを強制終了しnsurlstoragedから削除した後は、うまくいきました!
-nvahalik

1
どうもありがとう、賛成ですが、私はこのようにしました。1. Safariを閉じます。2. ~/Library/Cookies/HSTS.plisthttp上で必要なサイトのエントリを編集および削除します
Jason S

ええ、再起動は他のすべての回答から得られるアドバイスですが、20個のアプリを開いていると、nsurlstoragedプロセスを再起動する方がはるかに便利で高速です。ありがとう@nvahalik!
axello

2
Mojaveの更新:システム環境設定=>セキュリティとプライバシー=>プライバシーでTerminal.appへのフルディスクアクセスを許可していない限り、コマンドrm -f ~/Library/Cookies/HSTS.plistは戻りOperation not permittedます。それ以外の場合、ソリューションは完全に機能しました!ありがとう!
joehanna

@ nvahalik何が起こっているかは、再構築中のファイルよりも奇妙に思えます。rm ~/Library/Cookies/HSTS.plist ; touch ~/Library/Cookies/HSTS.plist ; chmod guo-wrx ~/Library/Cookies/HSTS.plist私さえ助けkillall nsurlstoragedなかったが、しました。
フラッシュシェリダン

6

Safariの環境設定で[開発]メニューを有効にすると、そこからキャッシュをクリアできます(CMD + ALT + E)。

Safariのプライベートウィンドウ(または別のWebブラウザー)でデバイスのコントロールパネルを開くことが正しく機能することを確認できますか?


残念ながら、開発メニューオプションはリダイレクトをクリアしないようです。また、Safariを閉じて手動で削除する~/Library/Caches/com.apple.Safariこともないので、リダイレクトを別の場所に保存する必要があります。HSTSは私が誤って有効にした機能でしたが、すでに削除しました~/Library/Cookies/HSTS.plist
ハラヴィック

1
この答えがそれを修正しないことも確認できます
-malhal

これは私のために働いた
マシューカウリー

5

@Haravikkの回答に基づく:https ://apple.stackexchange.com/a/267783/62907

〜/ Library / Cookies / HSTS.plistファイルを処理するプロセスについてのアイデアはありますか?

fs_usageが役立ちます:

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

だから私たちはできる:

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

その後:

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

そしてさらに試みる。


ありがとう!これは私のために働いた。HSTS.plistを何度も削除し(Safariの前後で閉じる/再起動する)、常に以前とまったく同じ内容で再作成されていました。最初にnsurlstoragedをアンロードしてからplistを削除し、nsurlstoragedを再起動すると、きれいなplistが得られました。
lucianf

2
Safariを動作させて終了するには、Safariを終了して再起動する必要があると言うことで、これを改善できます。また、HSTS.plistを削除するのではなく、問題のドメインキーを削除しました。
マルハル

3

curlデバイスのコマンドラインを使用して、リダイレクトを実行していないことを確認すると、良い結果が得られます。Safariにはアドレスを書き換えるエンジンが実際にはありません-特にプライベートブラウジングに移行して履歴やCookieなどを削除する場合は...

サファリを十分にクリーニングしたかどうかわからない場合は、システム設定を開き、Macでクリーン/新規ユーザーアカウントを作成してテストし、通常のユーザーからログアウトした後、Safariの完全にクリーンなバージョンでサイトをテストすることもできます。


リダイレクトは絶対にありません(私が接続しようとしている機能はHTTPSをまったくサポートしていません。そのため、デバイス全体でHSTSを有効にするのはひどい、ひどい間違いでした)。他のユーザーアカウントやブラウザからうまく接続できるので、メインアカウントのどこかに、これをキャッシュする何かが保存されています。(
Haravikk

「Safariにはアドレスを書き換えるエンジンが実際にありません」—現在、SafariでラップトップでホストされているWebサイトとcurl(Firefox、Chrome、およびプライベートブラウジングウィンドウがすぐそこにある)で同じ問題が発生していますSafari)同じユーザーアカウントでサイトを正常に読み込みます。したがって、Safari自体と関係があるはずです
ポールD.ウェイト

3

だから私は問題の回避策を見つけましたが、これは実際の質問に対する決定的な答えではないので、詳細を見つけるまでそのようなものとしてマークしません。

~/Library/Cookies/HSTS.plist私が疑ったように、ファイルは実際に問題の原因であったことが判明しましたが、Safariを閉じても、問題のあるユーザーアカウントから削除することはできません。無効なリダイレクトを強制していたエントリ。

だから私の解決策は次のとおりでした:

  1. Macに少なくとも1つの他のユーザーアカウントがあることを確認します(ない場合は作成します)。
  2. 影響を受けるユーザーアカウントのログアウト。
  3. 別のユーザーアカウントにログインします(制限によっては、ゲストアカウントでは不十分な場合があります)。
  4. 影響を受けるユーザーアカウントの短縮名を見つけます。わからない場合は、[システム環境設定]-> [ユーザー]を確認するのが最善の方法です。通常、フルネームが小文字でスペースなしの場合、フルネームが「John Smith」の場合、ショートネームは「johnsmith」になります。
  5. ターミナルでウィンドウを開き、su shortname「shortname」を影響を受けるユーザーアカウントのショートネームに置き換えて入力します。Enterキーを押し、プロンプトが表示されたら、影響を受けるアカウントのパスワードを入力します。
  6. 次のコマンドrm ~/Library/Cookies/HSTS.plistを入力してEnterキーを押すと、HSTSストレージファイルが削除されます。
  7. 最後にexit、を入力してEnterキーを押し、ターミナルを閉じます。

この時点で、影響を受けたユーザーアカウントに再度ログインでき、問題のあるHSTSリダイレクトは完全に削除されます。

さて、これは有効な回避策を提供しますが、影響を受けたアカウントからHSTS.plistファイルを削除できなかった理由を知りたいと思います。再作成されるという事実は、何らかのバックグラウンドプロセスがそれを担当することを意味します。つまり、そのプロセスを停止し、ファイルを削除してからプロセスを再起動するだけで、影響を受けるユーザーアカウントからファイルを削除できるはずです。

誰がどのプロセスが~/Library/Cookies/HSTS.plistファイルに責任があるのか​​考えていますか?問題をより簡単に修正することができるはずだとわかったら。


2

ここにアイデアがあります!

httpsリクエストをhttpにリダイレクトするようにサーバーを設定しても、リダイレクトを元に戻すことはできないと言います(管理者のアクセス権がないため)。

しかし、この逆リダイレクトを提供する別のサーバーに接続するようにサファリをだます場合はどうでしょうか?

これは、ローカルマシンの/etc/hostsファイルで設定できます。

たとえば、現在キャッシュされているリダイレクトがhttp://example.comtoであるとしましょうhttps://example.com

ここで、httpsからhttpにリダイレクトする世界中のサーバーで要求できるURLを設定または識別します。サーバーのアドレスがであるとしましょうhttps://redirecting.example.com

次に、のIPアドレスを検索しますredirecting.example.com。ターミナルでは、次のようにできます。

host redirecting.example.com

次のような結果が得られます。

redirecting.example.com has address 69.69.69.69

/ etc / hostsファイルを開き、次のように、redirecting.example.comのIPアドレスでexample.comの要求を指す新しい行を追加します。

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

変更を保存し、ターミナルのDNSキャッシュを次のようにクリアします。

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

次に、Safariでhttps://example.com、応答のリクエストをにリダイレクトする必要http://example.comがあります。この時点で、6か月前のSafariリダイレクトが上書きされます(指が交差した時点)。

完了したら、/ etc / hostsファイルに追加した行を削除し、DNSキャッシュを再度フラッシュします。


それは素晴らしいアイデアですが、実際の問題を解決するものではありません。私は回避策を探していませんが、このリダイレクトがキャッシュされている場所を知りたいので、Safariが有効ではなくなってもそれを使用し続けます(サーバーでHSTSが有効になっていないため、誤って簡単に有効にしました)。それはしなければならないどこかに保存することが、私はどこを把握することはできません。
ハラヴィック

これは実際の問題を解決すると予想されるため回避策と呼ぶものではありません。デバイスを制御できないという事実を回避するだけです。ただし、キャッシュされた設定を直接クリアできると便利です。Safariテクノロジープレビューも悪い動作をしますか?
-AllInOne

残念ながらそうです。Safari自体の問題ではないと思います~/Library/Cookies/HSTS.plistが、実際には犯人であるように見えますが、それが依存しているmacOSサービスがありますが、影響を受けたアカウントから削除しても機能しませんしばらくしてから、不正なリダイレクトを完了します)。しかし、どのプロセスがそれを行っているのか分かりません。
ハラヴィック

2

これらのすべてのソリューションを試した後、私にとってうまくいったのは:

  • Safariの履歴からドメインのすべてのインスタンスを削除します
  • Safariを終了します
  • 削除する ~/Library/Cookies/HSTS.plist
  • 再起動

2

新しいmacOS Mojave 10.14 Beta(18A365a)の2セント

a)決定的に停止することはできませんnsurlstoraged。sudoであっても、2秒で再起動します

b)「HSTS.plist」を削除することはできません:入力した場合:

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

取得:操作は許可されていません

c)試したとしても:

ls -la ~/Library/Cookies/

取得:操作は許可されていません

同じ

nano ~/Library/Cookies/HSTS.plist 

(空のファイル..)

そのため、絶対にアクセスすることはできません。(おそらくSIP?)

d)奇妙なことに、Finderから削除できる場合:

CMD Shift G 「〜/ライブラリ/ Cookies /」

ここに画像の説明を入力してください

マウスで削除できます:

ここに画像の説明を入力してください

e)より奇妙な:マウスを使用してデスクトップに移動し、編集て元に戻すことができます

(本当のナンセンス、GUIはsudoより強力です。)


2

Safari、Firefox、Chromeでも、開発者のサイドバーを開き、ネットワークタブを選択して、cachin g を無効にするだけです。

Safariでは、バツ印の付いたチューブ、ゴミ箱のロゴの横にある青色のものがあります。それを有効にすると、古い永続的なリダイレクトは無視されます。 Safariが503の永続的なリダイレクトの追跡を無効にします

最大の利点は、ファイルをいじる必要がなく、すべてのHTSTエントリを削除せず、セキュリティ上の利点が失われないことです。また、ブラウザ間で機能します。


これは知っておくと非常に便利ですが、永続的なソリューションとして機能するかどうかを確認してください。つまり、キャッシュが再度有効になった場合、問題は再発しますか、それとも一時的に無効にしてキャッシュをフラッシュしますか?
ハラヴィック

1
私のテストでは、@ Haravikkは、新しいページを代わりにロードできる場合、永続的なリダイレクトの使用に戻りません。開発ウィンドウを閉じた後でも、それがあなたの質問に答えるなら
luckydonald

1

まず、サーバーがStrict-Transport-Securityヘッダーを送信していないことを確認します。 これを行うことができます(ヘッダーを取得するだけです)
curl -I-I

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

サーバーがStrict-Transport-Securityヘッダーを送信している場合、ブラウザーからヘッダーを削除しても効果はありません。次回サイトにアクセスしたときに再び設定されます。

SafariのHttp Secure Transport Securityデータベースからサイトを削除します

  1. Safariを閉じる
  2. 編集~/Library/Cookies/HSTS.plist
    http経由でアクセスするサイトのエントリを検索して削除し、ファイルを保存します。
    • 有効なエントリを削除する必要がないため、削除するよりも編集することを好みます。
    • Xcodeを使用してplistファイルを編集しますが、インストールされていない場合は、テキストエディターを使用できます。
  3. コンピュータを再起動してください。
    • コンピューターを再起動する代わりに、再起動することもできますがnsurlstoragedSIPが関係する可能性があるため、コンピューターの再起動がより簡単になる場合があります。再起動に関するGrantの回答Quantaの回答をご覧くださいnsurlstoraged

1

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

サファリを正常に終了し、nsurlstoragedを停止し、HSTS.plistを削除し、nsurlstoragedを再度開始します。これは、macOS 10.13.5でうまく機能しました。


1

Mojave(10.14)を使用しています。HSTS.plistを削除するために、これまでに示した方法を試しました。さらに、〜/ライブラリ/ Cookies /の内容を一覧表示するときに「操作が許可されていません」という症状を解消するために、システム環境設定>セキュリティとプライバシー>フルディスクアクセスリストにターミナルを追加する必要がありました。

しかし、ファイルを削除してデーモンを再起動することはできませんでした。それで、Safariをもう一度開いてみて、Preferences、Privacy、Manage Website Dataに行きました。次に、問題のドメイン名の「キャッシュCookie、ローカルストレージ」をすべて削除しました。これで私の問題は解決しました。

HSTSを削除する必要があるかどうかは今は言えません。


私は、同じ試みた二回再起動するが、唯一のSafariのUIは、同様に私のために働い使用します。ありがとうございました!
バートヴェルコエイジェン

-1

これを試してから、ステップ1:〜/ Libraryフォルダーに移動、ステップ2:〜/ Library / Application SupportからSafariフォルダーを削除、ステップ3:〜/ Library / Cachesから下のフォルダーを削除、ステップ4:次に〜/を削除ライブラリ/ SafariフォルダーPS:上記の操作中はsafariを閉じたままにする


1
異なる質問に対する回答は、単なるリンク以上のものである必要があります。リンクを含めることはできますが、回答に要約または抜粋してください。アイデアは、答えを独立させることです。
nohillside
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.