2016-08-02 94 views
1

我正在開發一個cordova 4 ios應用程序。在安全掃描之後,建議我禁用NSURL緩存,以避免在設備上創建Cache.db文件。如何禁用cordova ios應用程序中的NSURL緩存?

有沒有辦法做到這一點?我試過這個插件 https://github.com/wongatech/cordova-disable-nsurl-cache 但它不工作(它說,它適用於科爾多瓦3.7)。

完全避免這種NSURL緩存是否明智,還是應該針對某些請求執行?可以說,那些含有「敏感」數據的緩存?

幫助任何人?

回答

0

我不知道科爾多瓦什麼,但假設它使用NSURLConnection的或NSURLSession引擎蓋下,並假設它是可以添加本地代碼,您可以禁用緩存NSURLConnection的是這樣的:

NSURLCache *URLCache = 
    [[NSURLCache alloc] initWithMemoryCapacity:4194304 // 4 MB 
            diskCapacity:0 
             diskPath:nil]; 
[NSURLCache setSharedURLCache:URLCache]; 

對於NSURLSession,您需要將會話配置的URLCache屬性更改爲您創建的URL緩存對象(而不是執行上面的第二行)。如果它使用NSURLSession,那大概需要對Cordova本身進行更改。

就這樣說,我不知道這是否適用於科爾多瓦。他們可能會使用自己的網絡代碼,在這種情況下,您必須以特定於Cordova的某種方式禁用緩存。

至於避免URL緩存問題,再次假設它使用NSURLConnection或NSURLSession,避免緩存任何敏感內容的最簡單方法是始終使用POST請求發送敏感數據,因爲這些結果永遠不會被緩存。

對於這個問題,即使科爾多瓦使用自己的網絡代碼,幾乎所有符合標準的網頁緩存都會強制執行POST請求的非可達性,所以這可能是一個相當安全的選擇。

+0

感謝您回答@dgatwood。我所有的請求都是使用POST發送的,所以我想沒有更多要討論。 正如我所提到的,有一個Cordova插件是有意這樣做的,但它不適合我(插件是將本機代碼添加到應用程序的方式)。 – gemega