Problem solve Get help with specific problems with your technologies, process and projects.

How to protect users exposed to cache poisoning attacks by HTML5

Expert Nick Lewis explains how the HTML5 offline application cache exposes users to the threat of cache poisoning and provides mitigation options.

I know several users around the office that cache webpages for use offline, but this is apparently a security issue in HTML5 that exposes them to cache poisoning. What details can you provide about this threat? Can you provide any advice on how users can safely cache webpages offline?

Ask the expert

Have questions about enterprise information security threats for expert Nick Lewis? Send them via email today! (All questions are anonymous.)

HTML5 offers users the ability to cache a webpage offline like a traditional full-client application can cache content offline. This scenario could lead to data not being updated as often as desired, or users may assume the data they are using is a legitimate copy of the most recent data from the server.

Attack and Defense Labs described an HTML5 cache poisoning attack at Blackhat 2010 and on the organization's blog. Basically, the attack targets the HTML5 application cache by performing a man-in-the-middle attack when using a cached Web application. The responses from the Web server are modified so that the client loads the attacker's website, including the malicious JavaScript that has been inserted. This JavaScript can then be used to steal passwords and other sensitive data.

To defend against cache poisoning, users can rely on a VPN to stop the required man-in-the-middle attack, though relying solely on SSL without a VPN won't protect a user if SSL man-in-the-middle attack tools are used.

There are a couple of things users who want to safely cache Web pages offline should do to secure the cached data. First, they should make sure any sensitive data is properly encrypted because it is stored on the local system. They could also use the private or incognito browsing version where webpages aren't cached, or manually clear all of their Web caches because application caches are managed separately. HTML5 developers could learn from some traditional full-client applications and their use of integrity checks and hashes, both of which can ensure the legitimate version of the cached application is being used.

This was last published in December 2012

Dig Deeper on Web browser security

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.