Preventing Download of Images

Is there a reliable way to prevent the browser from downloading
(copyrighted) images? I've seen some sites that try and I was able to
work around it in a minute.

I'm guessing there's an Ajax technique analogous to writing to
innerHTML that would write the binary data. Writing an img tag that
way doesn't seem very secure.

One alternative I can think of is to make a hardlink on the server
from the filename to a temporary filename that I delete as soon as the
download is done.

I could have the url refer to some specific action that does a
'render' but users 'save file' would go to the same action.

Come to think of it, it probably depends on what browser they're
using.

Any ideas, code or references will be appreciated.

fredistic

Most methods can be circumvented -- if you don't feel a copyright
water mark within the image (or overlaying with an invisible div) is
enough then you could render the image within a flash/java/silverlight
etc. applet.

Are you just trying to avoid hot linking or the saving of images?

Hot linking can be resolved at the web server level.

Hello,

Is there a reliable way to prevent the browser from downloading
(copyrighted) images? I've seen some sites that try and I was able to
work around it in a minute.

I'm guessing there's an Ajax technique analogous to writing to
innerHTML that would write the binary data. Writing an img tag that
way doesn't seem very secure.

One alternative I can think of is to make a hardlink on the server
from the filename to a temporary filename that I delete as soon as the
download is done.

I could have the url refer to some specific action that does a
'render' but users 'save file' would go to the same action.

Come to think of it, it probably depends on what browser they're
using.

Any ideas, code or references will be appreciated.

Well, preventing image-downloads server-side is near to impossible: Every
image accessed by http is downloaded by the browser - by design. There is no
way to tell the browsers, proxies, http-libs, etc. all together: Hey, it's
forbidden to save it somewhere instead of showing it to the user.
There are actually a few html hacks (putting divs in front of the image, etc.)
put, etc. but none of them will work out well (defective by design).
So, what options do you have then?
- Embed visible watermarks, use time-stamp services in order to prohibed
distribution on an juridical level.
(For visible watermarks you can use http://rmagick.rubyforge.org/ - here we
go: for now on, this thread is related to RoR *g*),
- Use client techniques (in other words: DRM), that will prevent your media to
be stored elsewhere.

Keep smiling
yanosz

Anything I can see on my screen I can save. Screenshot anybody? So the
best option is to do a watermark. Anything else you'll just have to do
a 403 on them, which isn't going to help the service I guess.