ios - 敏感数据存储在 cache.db-wal 文件中?

标签 ios objective-c sqlite uiwebview

我在 iOS 应用程序中遇到一个问题,该应用程序使用 UIWebView 来呈现作为应用程序包一部分的 HTML5 代码。

此 HTML5 代码向我们的后端发出 ajax 请求,其中可能包含敏感数据。这一切都是通过 HTTPS 完成的,我们的应用程序从不存储敏感数据。但是,在对应用程序进行安全测试时,我们发现从 iOS 5 开始,http post 请求存储在本地 SQL Lite 数据库 (cache.db) 中。

通过将 NSURLCache 全局对象设置为零磁盘存储并在适当的时候删除文件,这很容易管理。

但是现在,在 iOS 6.1 中,Apple 似乎又更改了实现,数据存储在 cache.db-wal 中。我对 SQL Lite 的了解有限,但我认为这是在使用某些选项初始化 SQL Lite 时创建的文件。

关于修复的任何建议?

最佳答案

经过进一步研究,上面 Hot Licks 的建议似乎是正确的,通过将“无缓存,无存储”值添加到 HTTP 响应,HTTP 请求值不会记录在 SQLite 数据库中。

例如,在 ASP.Net MVC 中:

public ActionResult PostSensitiveData(string data)
{
     Response.Cache.SetCacheability(HttpCacheability.NoCache);
     Response.Cache.SetNoStore();

     return Json(data);
}

关于ios - 敏感数据存储在 cache.db-wal 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17668617/

相关文章:

ios - iTunes上的“可用日期”是否连接新界面?

ios - didChangeAuthorization 授权未更改时运行状态

ios - UICollectionViewCell 以编程方式自动布局

java - android.database.sqlite.SQLiteDatatypeMismatchException : datatype mismatch (code 20)

java - 使用 SQlite 数据库在自定义基础适配器 ListView 中存储复选框状态

iphone - 在 iPhone 中显示不同的货币格式

iOS 8 - 在启用 AutoLayout 的情况下更改 UIScrollView 的框架

objective-c - 如何创建一个仅后台程序,可以显示带有文本字段的窗口

iphone - 在 iOS 上将 CollectionView Cells 紧紧地打包在一起?

sqlite - 使用sqlite递归计算出现次数