簡體   English   中英

以編程方式刪除Safari Cookie

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM