On a mobile communications device, visiting a link from a messaging application or
web browser may result in an undesired action, such as visiting a
phishing site, downloading
malware, causing unwanted charges, using too much battery, or the device being exploited. In an implementation, a mobile application intercepts a request including an identifier associated with an action to be performed by another application on the device and evaluates the identifier to determine when the request should be permitted, blocked, or conditionally permitted. The
client may use local data or make a request to a
server to evaluate the identifier. In an implementation,
server communications are optimized to minimize latency by caching evaluation results on the device, proactively priming the device's DNS cache, optimizing when DNS lookups are performed, and adapting evaluation policy based on factors such as the source of the request, and the currently active
network connection.