[英]Deleting Safari cookies programmatically
OSX Sierra 10.12.1 Safari 10.0.1
我試圖以編程方式重現MacOS Safari-> Preferences-> Privacy-> ManageWebsiteData-> RemoveAll按鈕的行為,刪除所有網站數據,但數據似乎總是存在。 許多SO線程使用HTTPCookieStorage類在這些方面提出了一些建議:
if #available(OSX 10.11, *) {
cookieJar = HTTPCookieStorage.sharedCookieStorage(forGroupContainerIdentifier: "Cookies")
} else {
cookieJar = HTTPCookieStorage.shared
}
cookieJar.removeCookies(since: Date(timeIntervalSince1970: 1))
使用這個二進制cookie閱讀器python腳本,我可以在〜/ Library / Cookies / Cookies.binarycookies中驗證預期的結果
我還驗證了cookieJar.setCookie()和cookieJar.deleteCookie()等操作在這個商店中進行了更改,並且cookieJar.cookies正如預期的那樣。
我還根據我遇到的其他幾個SO線程添加了這個調用:
URLCache.shared.removeAllCachedResponses()
執行此代碼后,網站數據將繼續保留。 Safari-> Preferences-> Privacy-> ManageWebsiteData似乎不受影響。
我也嘗試過這里的指導並在Safari關閉時執行此操作,因為這可以使用FileManager類以編程方式實現: https : //www.macissues.com/2015/06/22/how-to-fully-reset -safari上,你-MAC /
網站數據仍然存在。 有誰知道為完全刪除所有網站數據需要采取的任何進一步措施?
這會刪除您應用的Cookie。 例如, NSURLSession
調用或WKWebView
受此影響。 您無法從其他應用程序(Safari)中刪除用戶的Cookie。 如果可能,這將是隱私/惡意軟件問題。
如果這不是沙盒應用程序,您可以刪除Safari沙箱中的文件。
您可以使用AppleScript單擊“全部刪除”按鈕。
tell application "System Events" to tell process "Safari"
-- Display the preferences privacy tab
keystroke "," using command down
delay 1
click button "Privacy" of toolbar 1 of window 1
-- Display the cookie list
click button "Manage Website Data…" of group 1 of group 1 of window "Privacy"
delay 3
click button "Remove All"
click button "Done"
end tell
顯然,這樣做的缺點是用戶可以准確地看到發生了什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.