OSX Sierra 10.12.1狩猎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 reader python脚本,我可以在~/library/cookies/cookies.binarycookies中验证预期结果。
我还验证了一些操作,如cookiejar.setcookie()和cookiejar.deletecookie()在此存储中进行了更改,cookiejar.cookies如预期的那样。
我还根据遇到的其他几个so线程添加了此调用:
URLCache.shared.removeAllCachedResponses()

执行此代码后,网站数据将继续保留。Safari->Preferences->Privacy->ManageWebSiteData似乎未受到影响。
我还尝试遵循这里的指导,并在safari关闭的情况下执行此操作,因为这可以通过使用filemanager类以编程方式实现:
this
网站数据仍然存在。是否有人知道需要采取任何进一步的步骤来完全删除所有网站数据?

最佳答案

这将删除应用程序的cookie。例如,NSURLSession呼叫或WKWebView受此影响。您不能从其他应用程序(Safari)中删除用户的cookie。如果可以,这将是一个隐私/恶意软件问题。
如果这不是沙盒应用程序,您可能只需删除Safari沙盒中的文件即可。

10-07 19:49
查看更多