我在 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/