2016-08-02 10 views
1

Я разрабатываю приложение cordova 4 ios. После проверки безопасности было рекомендовано отключить кэширование NSURL, чтобы избежать создания файла Cache.db на устройствах.Как отключить кеш NSURL в приложении cordova ios?

Есть ли способ достичь этого? Я пробовал этот плагин https://github.com/wongatech/cordova-disable-nsurl-cache но он не работает (он говорит, что он работает для cordova 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.

С учетом этого я понятия не имею, будет ли это работать с Кордовой или нет. Вместо этого они могут использовать свой собственный сетевой код, и в этом случае вам придется отключить кеширование каким-то образом, характерным для Кордовы.

Что касается исключения кеширования URL-адресов, то при условии, что он использует NSURLConnection или NSURLSession, самый простой способ избежать кэширования чего-либо чувствительного - всегда использовать POST-запросы для отправки конфиденциальных данных, потому что эти результаты никогда не кэшируются.

В этом случае, даже если Cordova использует свой собственный сетевой код, неприменимость запросов POST должна выполняться практически любым стандартизованным веб-кешем, поэтому это, вероятно, довольно безопасная ставка.

+0

спасибо за ответ @dgatwood. Все мои запросы отправляются с использованием POST, поэтому я думаю, что обсуждать нечего. Как я уже упоминал, есть плагин Cordova, который предназначен для этого, но он не работает для меня (плагины - это способ добавить собственный код в приложение). – gemega