views:

98

answers:

1

I want to view dynamic contents (flash games, online transaction...etc) offline.

For example, I finish level 1 of this cool flash RPG game. I go offline and play the level again.

Or, I make a purchase. And make the purchase again offline. Of course this won't do anything. It will be strictly for demonstration purpose.

Or, I watch a video online. Go offline and watch it again.

Is this feasible? Whatever I do through browser, it has to download things. When it downloads, it stores on disk. Then, when it is in offline mode, it routes all traffic out to local disk. Sounds simple, but is this really possible?

Or am I missing something?

Let's say someone patched a browser to make offline mode much more powerful. As a web developer, how can I secure my application from this patched browser?

Let's say I charging my contents (video, game...etc) per view/use. With this patched browser, people can pay once and view/use it over and over again. They might even make a tarball out of their browser cache and share with other people online.

So, my questions are:

  1. is this patched browser possible?
  2. if it is possible, how can I defend my content against it?
+1  A: 

I'm trying to find the original author of the quote: "Trying to make digital content not copyable is like trying to make water not wet."

In your question you describe several different scenarios as if they were similar. They are not. If you have a specific question, then please ask it so that people can focus on addressing the specific case that concerns you.

Let's talk about video (and audio). Essentially, without controlling the client, you can NOT stop the downloaded video from being cached and re-watched. "Patched" browsers exist. In fact, they're not patched. They don't even need to be. FireFox has any number of plug-ins such as "DownloadHelper" which make all of this possible. YouTube goes to some effort to change their system regularly to break DownloadHelper. But they know they can only slow things down.

The only way to control a video download being re-watched is insist on the user using your completely custom plugin or application. The problem is that (a) that costs you much more money, (b) it's more painful for the user.

The other cases you mention - RPG and online transaction... these are different. Often with an RPG or other game, the client portion includes only a part of the code. Some of the code resides on your server. Without a connection to the server, the game cannot be played. You don't have to write it that way, you could make it 100% client... in which case (e.g. for Flash) the SWF file can be downloaded and played again and again, without your control.

But usually those online flash games are part-server in order to do what you say, and make them playable only online and only via the game-writers site.

An online transaction ALWAYS involves a server component, usually encrypted and non-repeatable. They can be secured.

the.jxc
video: request for video resource (probably through flash plugin thesedays). server responds. cache it. make a routing entry for the resource. game: request for many things (probably through some multimedia plugin and/or javascript). server responds. cache them. make routing entries. transaction: request (through javascript or what not). responds. cache them all. route. I am not convinced why they are different. If you say browser cannot know what plugin is doing (where it makes requests. where it stores responds)... then I admit it'd be difficult.
numeric
As I understand, if you are running in the browser sandbox, all of your requests for resources must go through the browser framework.<p>If you run an in-browser Flash app which requests http/s resources, those requests are still visible to the browser, i.e. are viewable via a plugin like HttpFox.
the.jxc