[iOS] Sécurité: Alamofire – désactivation de NSURL cache

lundi 30 janvier 2017

Par défaut et pour un soucis de rapidité d’appel à des webservices, les urls sont sauvés dans une base de données sqlite locale dans l’application.
Cette base de donnée se trouve dans /library/Cache/…../Cache.db

Dans cette db on peut retrouver les appels vers nos webservices avec les paramètres envoyés.

Suite à un audit de sécurité, il m’a été demandé de désactiver ce caching des urls/

Il faut donc modifier la configuration du composant Alamofire qui se charge d’appeler les webservices au backend en demandant de ne plus sauver ces urls dans le cache via le code suivant:

	private func executeLoad() {
        self.status = .Loading
		if let URLRequest = self.createURLRequest() {
			NetworkActivityIndicatorService.sharedInstance.networkActivityStarted()
            let config = NSURLSessionConfiguration.defaultSessionConfiguration()
            config.URLCache = nil
            config.requestCachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData
            let manager = Alamofire.Manager(configuration: config)
			self.request = manager.request(URLRequest).responseData(completionHandler: { (response) in
			self.handleRequestResult(response)
			})
	     }
	}

Tags: Alamofire , IOS , NSURLCache , sécurité