Làm cách nào để xóa hoàn toàn các chuyển hướng được lưu trong bộ nhớ cache từ Safari?


27

Tôi có một thiết bị có bảng điều khiển dựa trên web và vô tình đặt thiết bị để chuyển hướng tất cả httpcác trang sang https, mặc dù một số không hoạt động https. Mặc dù tôi đã sửa lỗi này, Safari dường như đã ghi nhớ chuyển hướng và từ chối quên nó, thay vào đó liên tục cố gắng chuyển hướng tôi đến httpsđịa chỉ không hợp lệ .

Tôi đã đóng Safari, đã xóa ~/Library/Caches/com.apple.Safari/~/Library/Cookies/HSTS.plistdường như vẫn còn nhớ chuyển hướng khi tôi mở lại.

Nơi nào khác Safari có thể lưu trữ thông tin này? Tôi có thể truy cập đúng trang thông qua Firefox hoặc Chrome, vì vậy đây có thể không phải là dịch vụ toàn hệ thống hoặc nếu đó không phải là dịch vụ mà các trình duyệt khác sử dụng.

Thật không may vì bảng điều khiển web được cung cấp bởi một thiết bị mà tôi không tin rằng tôi có thể điều chỉnh các tiêu đề hoặc thiết lập chuyển hướng trở lại URL chính xác, dường như là các tùy chọn được cung cấp trong các câu hỏi tương tự khác, vì vậy tôi thực sự cần tìm hiểu xem điều này ở đâu dữ liệu đang được lưu trữ để tôi có thể phá hủy nó bằng lửa.



Bạn đã thử bỏ rác / di chuyển sang một bên ~/Library/Safarithư mục của bạn và xem nếu điều đó khắc phục vấn đề? Nếu vậy, bạn có thể thử nghiệm với các mục trong thư mục cho đến khi bạn tìm thấy tệp thủ phạm.
thú vị khác

Làm thế nào bạn thiết lập chuyển hướng? Với một phần mở rộng hoặc có một cài đặt trong Safari cho điều đó?
Owlswipe

Liệu chuyển hướng vẫn xảy ra với một cửa sổ duyệt web riêng tư?
AllInOne

@ ALLInOne ý tưởng thú vị, nhưng thật không may, nó vẫn xảy ra trong trình duyệt riêng tư.
Harastak

Câu trả lời:


29

Dựa trên câu trả lời của quanta :

Tôi không thể sử dụng launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plistvì tôi đã bật Bảo vệ toàn vẹn hệ thống :

$ 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

Tuy nhiên tôi đã có thể làm việc xung quanh nó bằng cách làm như sau:

  • killall nsurlstoraged(dừng quá trình nsurlstoraged của người dùng của bạn; Tôi thực sự đã chạy sudo killall nsurlstoraged, nhưng tôi nghi ngờ rằng cũng không cần thiết phải dừng nsurlstoraged của hệ thống, vì bộ đệm nằm trong thư mục Thư viện người dùng)
  • rm -f ~/Library/Cookies/HSTS.plist (xóa bộ đệm HSTS)
  • launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist (khởi động lại nsurlstoraged)

Tôi không thể đưa ra câu trả lời này đủ. Có vẻ như ít nhất là trên Sierra, chỉ cần xóa HSTS.plisttệp sẽ không khắc phục được sự cố vì nó sẽ tiếp tục được xây dựng lại. Tuy nhiên, sau khi giết nsurlstoragedsau đó gỡ bỏ tập tin HSTS đã làm điều đó!
nvahalik

1
Cảm ơn rất nhiều, nâng cao, nhưng tôi đã làm nó như thế này. 1. Đóng Safari 2. Chỉnh sửa ~/Library/Cookies/HSTS.plistvà xóa mục nhập cho trang web tôi muốn trên http 3. Khởi động lại máy tính
Jason S

Vâng, khởi động lại là lời khuyên mà tất cả các câu trả lời khác cung cấp cho bạn, nhưng với 20 ứng dụng mở, sẽ thuận tiện hơn và nhanh hơn nhiều để khởi động lại quy trình nsurlstoraged. Cảm ơn @nvahalik!
axello

2
Cập nhật Mojave: lệnh rm -f ~/Library/Cookies/HSTS.plistsẽ trở lại Operation not permittedtrừ khi bạn đã cấp quyền truy cập Full Disk cho Terminal.app trong Tùy chọn hệ thống => Bảo mật & quyền riêng tư => Quyền riêng tư. Nếu không, giải pháp đã làm việc hoàn hảo! Cảm ơn!
joehanna

@ nvahalik Điều gì đang diễn ra dường như còn kỳ quặc hơn cả tập tin đang được xây dựng lại; thậm chí không rm ~/Library/Cookies/HSTS.plist ; touch ~/Library/Cookies/HSTS.plist ; chmod guo-wrx ~/Library/Cookies/HSTS.plistgiúp tôi, nhưng killall nsurlstoragedđã làm.
Flash Sheridan

6

Nếu bạn bật menu Develop trong tùy chọn Safari, bạn có thể xóa bộ nhớ cache từ đó (CMD + ALT + E).

Bạn có thể xác nhận rằng việc mở bảng điều khiển của thiết bị trong cửa sổ Riêng tư của Safari (hoặc trình duyệt web khác) hoạt động chính xác không?


Thật không may, tùy chọn menu phát triển dường như không xóa chuyển hướng, cũng không đóng Safari và xóa thủ công ~/Library/Caches/com.apple.Safariđể chuyển hướng phải được lưu trữ ở một nơi khác. HSTS là tính năng tôi vô tình kích hoạt nhưng tôi đã xóa ~/Library/Cookies/HSTS.plist.
Harastak

1
Tôi cũng có thể xác nhận câu trả lời này không khắc phục được
malhal

Cái này làm việc cho tôi
Matthew Cawley

5

Dựa trên câu trả lời của @ Harastak: /apple//a/267783/62907

Bất cứ ai cũng có bất kỳ ý tưởng nào mà quá trình chịu trách nhiệm cho tập tin ~ / Library / Cookies / HSTS.plist?

fs_usage có thể giúp:

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

Vì vậy, chúng ta có thể:

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

sau đó:

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

và thử lại.


Cảm ơn! Điều này làm việc cho tôi. Tôi đã xóa HSTS.plist nhiều lần (đóng / khởi động lại Safari trước và sau) và nó luôn được tạo lại với chính xác nội dung như trước. Dỡ bỏ nsurlstoraged trước, sau đó xóa plist và khởi động lại nsurlstoraged đã cho tôi một plist sạch.
lucianf

2
Bạn có thể cải thiện điều này bằng cách đề cập đến việc bạn cần thoát và khởi chạy lại Safari để nó hoạt động. Ngoài ra, thay vì xóa HSTS.plist, tôi chỉ xóa khóa miền vấn đề.
malhal

3

Bạn sẽ có kết quả tốt nếu bạn sử dụng dòng lệnh cho curlthiết bị để đảm bảo rằng nó không thực hiện chuyển hướng. Safari không thực sự có một công cụ để viết lại địa chỉ - đặc biệt là nếu bạn vào trình duyệt riêng tư để xóa bất kỳ lịch sử, cookie, v.v ...

Nếu bạn không chắc chắn mình đã dọn dẹp safari của mình đủ chưa, bạn cũng có thể kiểm tra bằng cách mở tùy chọn hệ thống và tạo tài khoản người dùng mới / sạch trên Mac và kiểm tra trang web trên phiên bản Safari hoàn toàn sạch sau khi đăng xuất khỏi người dùng thông thường của bạn .


Chắc chắn không có chuyển hướng (tính năng tôi đang cố gắng kết nối để không hỗ trợ HTTPS, đó là lý do tại sao việc bật HSTS cho toàn bộ thiết bị là một sai lầm khủng khiếp, khủng khiếp); Tôi có thể kết nối tốt từ các tài khoản người dùng và trình duyệt khác, do đó, có thứ gì đó được lưu trữ ở đâu đó trên tài khoản chính của tôi đang lưu trong bộ nhớ cache này :(
Harastak

Safari Safari thực sự không có công cụ để viết lại địa chỉ, - Hiện tại tôi cũng gặp vấn đề tương tự xảy ra với Safari với một trang web được lưu trữ trên máy tính xách tay của tôi và cuộn tròn (cùng với Firefox, Chrome và cửa sổ Duyệt web riêng tư ngay trong đó Safari) trên cùng một tài khoản người dùng tải trang web tốt. Vì vậy, nó phải là một cái gì đó để làm với chính Safari.
Paul D. Chờ

3

Vì vậy, tôi đã tìm thấy một cách giải quyết vấn đề, mặc dù đây không phải là câu trả lời dứt khoát cho câu hỏi thực tế nên tôi sẽ không đánh dấu nó như vậy cho đến khi tôi có thể tìm thêm thông tin.

Hóa ra tệp ~/Library/Cookies/HSTS.plistthực sự là nguồn gốc của sự cố như tôi nghi ngờ, tuy nhiên việc xóa nó khỏi tài khoản người dùng bị ảnh hưởng không hoạt động, ngay cả khi Safari bị đóng, vì nó được tạo lại sau một khoảng thời gian không xác định, hoàn thành với việc vi phạm mục đó đã buộc chuyển hướng không hợp lệ.

Vì vậy, giải pháp của tôi là như sau:

  1. Đảm bảo bạn có ít nhất một tài khoản người dùng khác trên máy Mac (nếu không, hãy tạo một tài khoản).
  2. Thoát khỏi tài khoản người dùng bị ảnh hưởng.
  3. Đăng nhập vào một tài khoản người dùng khác (một tài khoản khách có thể không đủ, tùy thuộc vào các hạn chế).
  4. Tìm ra tên viết tắt của tài khoản người dùng bị ảnh hưởng của bạn; nếu bạn không biết thì cách tốt nhất để kiểm tra là xem trong Tùy chọn hệ thống -> Người dùng. Thông thường nếu sẽ là tên đầy đủ, chữ thường và không có khoảng trắng, vì vậy nếu tên đầy đủ của bạn là "John Smith" thì tên viết tắt có thể là "johnsmith".
  5. Mở một cửa sổ trong Terminal, gõ su shortnamethay thế "shortname" bằng tên ngắn của tài khoản người dùng bị ảnh hưởng. Nhấn enter và khi được nhắc, nhập mật khẩu cho tài khoản bị ảnh hưởng.
  6. Bây giờ gõ lệnh tiếp theo rm ~/Library/Cookies/HSTS.plistvà nhấn enter, điều này sẽ xóa tệp lưu trữ HSTS.
  7. Cuối cùng gõ exit, nhấn enter và đóng Terminal.

Tại thời điểm này, bây giờ bạn có thể đăng nhập lại vào tài khoản người dùng bị ảnh hưởng và chuyển hướng HSTS vi phạm sẽ không còn nữa.

Bây giờ, trong khi điều này cung cấp một cách giải quyết có thể sử dụng được, tôi thực sự muốn biết tại sao xóa tệp HSTS.plist khỏi tài khoản bị ảnh hưởng của tôi không hoạt động; thực tế nó được tạo lại có nghĩa là một số quá trình nền chịu trách nhiệm cho nó, điều đó có nghĩa là có thể xóa tệp khỏi tài khoản người dùng bị ảnh hưởng bằng cách dừng quá trình đó, xóa tệp, sau đó khởi chạy lại quá trình.

Bất cứ ai có bất kỳ ý tưởng mà quá trình chịu trách nhiệm cho các ~/Library/Cookies/HSTS.plisttập tin? Một khi chúng ta biết rằng cần phải khắc phục vấn đề đơn giản hơn.


2

Đây là một ý tưởng!

Bạn nói rằng bạn không thể hoàn tác chuyển hướng bằng cách đặt máy chủ chuyển hướng các yêu cầu https trở lại http (vì bạn không có quyền truy cập quản trị viên để làm như vậy).

Nhưng nếu bạn lừa safari kết nối với một máy chủ khác cung cấp chuyển hướng ngược này thì sao?

Bạn có thể thiết lập điều này trong /etc/hoststập tin máy cục bộ của bạn .

Ví dụ giả sử các cache chuyển hướng hiện nay là từ http://example.comđể https://example.com.

Bây giờ hãy thiết lập hoặc xác định một url mà bạn có thể yêu cầu trên bất kỳ máy chủ nào trên thế giới chuyển hướng từ https trở lại http. Hãy nói rằng máy chủ có địa chỉ https://redirecting.example.com.

Sau đó tra cứu địa chỉ IP của redirecting.example.com. Trong Terminal bạn có thể làm như thế này:

host redirecting.example.com

Bạn nhận được một kết quả như thế này:

redirecting.example.com has address 69.69.69.69

Bây giờ hãy mở tệp / etc / hosts của bạn và thêm một dòng mới trỏ yêu cầu cho example.com tại địa chỉ IP của redirecting.example.com, như vậy:

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

Lưu các thay đổi của bạn và xóa bộ đệm DNS của bạn trong thiết bị đầu cuối như vậy:

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

Sau đó, trong Safari, yêu cầu https://example.comphản hồi phải là chuyển hướng quay lại http://example.com, tại thời điểm đó (ngón tay giao nhau) chuyển hướng Safari của bạn từ 6 tháng trước sẽ bị ghi đè.

Khi hoàn tất, hãy xóa dòng bạn đã thêm vào tệp / etc / hosts và xóa lại bộ đệm DNS của bạn.


Mặc dù đó là một ý tưởng hay nhưng nó không giải quyết được vấn đề thực sự; Tôi không tìm cách giải quyết, nhưng tôi muốn biết chuyển hướng này đang được lưu trong bộ nhớ cache để Safari tiếp tục sử dụng mặc dù nó không còn hiệu lực (máy chủ không kích hoạt HSTS, tôi chỉ đơn giản kích hoạt nó một cách ngắn gọn ). Nó phải được lưu trữ ở đâu đó, nhưng tôi không thể tìm ra nơi nào.
Harastak

Đây không phải là những gì tôi sẽ gọi là một cách giải quyết, vì tôi hy vọng nó sẽ giải quyết vấn đề thực tế . Nó chỉ hoạt động xung quanh thực tế là bạn không có quyền kiểm soát thiết bị. Nhưng tôi nghe thấy bạn - thật tuyệt khi có thể xóa cài đặt được lưu trong bộ nhớ cache trực tiếp. Liệu Safari Technology Preview cũng thể hiện hành vi xấu?
AllInOne

Thật không may là như vậy; Tôi không nghĩ rằng đó là một vấn đề với chính Safari, nhưng một số dịch vụ macOS mà nó phụ thuộc vào, vì nó thực sự có vẻ ~/Library/Cookies/HSTS.plistlà thủ phạm, nhưng xóa nó khỏi tài khoản bị ảnh hưởng không hoạt động (vì nó được tạo lại một thời gian sau, hoàn thành với chuyển hướng xấu). Không chắc chắn quá trình đang làm điều đó mặc dù.
Harastak

2

Sau khi thử tất cả các giải pháp này, điều làm việc cho tôi là:

  • Xóa tất cả các phiên bản của miền khỏi lịch sử của Safari
  • Thoát khỏi Safari
  • Xóa bỏ ~/Library/Cookies/HSTS.plist
  • Khởi động lại

2

Hai xu của tôi cho macOS Mojave 10.14 Beta mới (18A365a)

a) Bạn không thể dừng dứt khoát nsurlstoraged, nó khởi động lại sau 2 giây, ngay cả khi sudo

b) bạn không thể xóa "HSTS.plist": nếu Bạn nhập:

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

bạn nhận được: Hoạt động không được phép

c) ngay cả khi bạn cố gắng:

ls -la ~/Library/Cookies/

bạn nhận được: Hoạt động không được phép

tương tự cho

nano ~/Library/Cookies/HSTS.plist 

(tệp tin rỗng..)

Vì vậy, bạn chắc chắn không thể truy cập nó. (có thể là SIP?)

d) lạ thay bạn có thể xóa nếu từ Finder:

CMD Shift G "~ / Thư viện / Cookies /"

nhập mô tả hình ảnh ở đây

và bạn có thể xóa bằng chuột:

nhập mô tả hình ảnh ở đây

e) lạ hơn: Bạn có thể di chuyển đến Desktop bằng chuột, chỉnh sửađặt lại !

(một điều vô lý thực sự, GUI mạnh hơn sudo ..)


2

Trong Safari, Firefox và Chrome cũng vậy, tất cả những gì bạn phải làm là mở thanh bên của nhà phát triển , chọn tab mạng và tắt bộ đệm ẩn g.

Trong Safari đó là một thứ bỏ qua, cái màu xanh bên cạnh logo thùng rác. Kích hoạt điều đó, và chuyển hướng vĩnh viễn cũ nên được bỏ qua. Safari vô hiệu hóa chaching 503 chuyển hướng vĩnh viễn

Lợi ích lớn nhất là bạn không phải lộn xộn với các tệp, bạn sẽ không xóa tất cả các mục HTST và mất các lợi ích bảo mật. Ngoài ra nó hoạt động trên các trình duyệt.


Trong khi điều này rất hữu ích để biết, bạn có thể vui lòng xác nhận xem nó có hoạt động như một giải pháp lâu dài không? tức là - nếu bộ đệm được kích hoạt lại, vấn đề sẽ xuất hiện trở lại hay tạm thời vô hiệu hóa nó?
Harastak

1
@Harastak trong các thử nghiệm của tôi, nó sẽ không trở lại sử dụng chuyển hướng vĩnh viễn khi một trang mới có thể được tải thay thế. Ngay cả sau khi đóng cửa sổ phát triển, nếu điều đó trả lời câu hỏi của bạn
luckydonald

1

Trước tiên, hãy đảm bảo rằng máy chủ không gửi tiêu đề Strict-Transport-Security
Bạn có thể làm điều này với curl -I( -Ichỉ cần có các tiêu đề)

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

Nếu máy chủ đang gửi tiêu đề Strict-Transport-Security, việc xóa nó khỏi trình duyệt của bạn sẽ không có hiệu lực, vì lần sau khi bạn truy cập trang web, nó sẽ được đặt lại.

Xóa trang web của bạn khỏi cơ sở dữ liệu HTTP Secure Transport Security Security của Safari

  1. Đóng Safari
  2. Chỉnh sửa ~/Library/Cookies/HSTS.plist
    Tìm kiếm mục nhập cho trang web bạn muốn truy cập qua http và xóa nó, và lưu tệp.
    • Tôi thích chỉnh sửa hơn là xóa vì không cần phải xóa các mục hợp lệ.
    • Tôi chỉnh sửa các tệp plist bằng Xcode, nhưng nếu nó chưa được cài đặt, bạn có thể sử dụng trình soạn thảo văn bản.
  3. Khởi động lại máy tính của bạn.
    • Thay vì khởi động lại máy tính của bạn, bạn có thể khởi động lại nsurlstoragednhưng điều đó có thể liên quan do SIP nên việc khởi động lại máy tính có thể đơn giản hơn. Xem câu trả lời của Grantcâu trả lời của Quanta về việc khởi động lạinsurlstoraged

1

Tôi đã tạo một kịch bản từ câu trả lời của 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

Nó duyên dáng kết thúc safari, dừng nsurlstoraged, loại bỏ HSTS.plist và bắt đầu nsurlstoraged một lần nữa. Điều này làm việc tốt với tôi ở đây trên macOS 10.13.5


1

Tôi đang sử dụng Mojave (10.14). Tôi đã thử các phương thức được đưa ra cho đến nay để loại bỏ HSTS.plist. Ngoài ra, tôi cần thêm Terminal vào Danh sách tùy chọn hệ thống> Bảo mật & quyền riêng tư> Truy cập toàn bộ đĩa để khắc phục triệu chứng "Thao tác không được phép" khi liệt kê nội dung của ~ / Library / Cookies /.

Nhưng, xóa tệp và khởi động lại daemon không hoạt động. Vì vậy, tôi đã thử mở Safari một lần nữa, đi đến Tùy chọn, Quyền riêng tư, Quản lý Dữ liệu Trang web. Sau đó, tôi đã xóa tất cả "cookie bộ nhớ cache, bộ nhớ cục bộ" cho tên miền vi phạm. Điều đó đã giải quyết vấn đề của tôi.

Tôi không thể nói bây giờ nếu loại bỏ HSTS là cần thiết hay không.


Tôi đã thử tương tự khởi động lại hai lần, nhưng chỉ sử dụng UI của Safari cũng hoạt động với tôi. Cảm ơn bạn!
Bart Verkoeijen

-1

Hãy thử điều này sau đó, chuyển đến Bước 1: Chuyển đến thư mục ~ / Thư viện, Bước 2: Xóa thư mục Safari khỏi ~ / Thư viện / Hỗ trợ ứng dụng, Bước 3: Xóa các thư mục bên dưới khỏi ~ / Library / Caches, Bước 4: sau đó Xóa ~ / Thư mục Thư viện / Safari PS: Giữ safari đóng trong các hoạt động trên


1
Câu trả lời trên Hỏi khác nhau không chỉ là một liên kết. Bạn có thể bao gồm một liên kết, nhưng vui lòng tóm tắt hoặc trích dẫn nó trong câu trả lời. Ý tưởng là làm cho câu trả lời đứng một mình.
nohillside
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.