Skip to the main content
[] 24. VIII. 2005.

Kako spriječiti korisnika da si snimi sliku (jpeg, gif, png...) s vaše stranice? Nikako. Ali može mu se otežati. Ovaj tekst govori o tome kako da ga onemogućimo (zajebemo) da s desnom tipkom otvori menu i okine "Save As".

Trik se sastoji u tome da sliku bacimo u pozadinu a iznad nje rastegnemo transparentnu sliku. Nešto kao:

<img style="background: url('mouse1.gif')" src="image.gif" width="90" height="123" alt="Burek">

Daklem, naša originalna slika mouse1.gif je ubačena u pozadinu, a u prvi plan smo ponudili image.gif (namjerno je image.gif, a ne recimo empty.gif da ne bacamo sumnju preko naziva slike) koji je ustvari transparentni gif veličine 1x1 pixela.

• • •

I to je to. Gotovo.

• • •

- Malo sutra! Pa jesmo li mi programeri ili nismo?

- Programeri? Ma kakvi, ovo je dovoljno, idem si ja zaštititi 10 sajtova s pornografijom.

- Baš me zanima, koliko slika imaš ispast će ti prsti nakon prvog.

- A ima i nešto bolje?

- Ima, samo se mora nešto programirat. Čitaj dalje.

- Ajd, ali nemoj komplicirati.

• • •

Pretpostavimo da na našim (napravit ćemo izuzetak i ne koristiti gole babe) nepornografskim stranicama imamo nekoliko slika koje bi vrlo rado zaštitili. Nešto poput ovog:

<img src="mouse1.gif" width="90" height="123" alt="Burek">
<img src="mouse2.gif" width="90" height="123" alt="Pero">
<img src="mouse3.gif" width="90" height="123" alt="Foo">
...

Uz to imamo prazan image.gif kojim trebamo prekriti ove slike. To ćemo izvesti u nekakvoj init() funkciji nakon što se html učita.

function init()
{
...
}

onload = init

U njoj prvo pokupimo sve IMG objekte u htmlu:

var im = document.getElementsByTagName('img')

i nakon toga prodjemo kroz njih, slike lupimo u pozadinu, a na njihova mjesta stavimo image.gif:

for(i = 0; i < im.length; i++)
{
    im[i].style.background = 'url(\'' + im[i].src + '\')'
    im[i].src = 'image.gif'
}

i to je cijela mudrost! Fali nam još samo završni umjetnički potez, a to je ova zadnja linija koja ružno izgleda jer se ponavlja taj famozni image.gif. Stavit ćemo ga u neki Image() objekat i usput preloadirati:

var e = new Image()
e.src = 'image.gif'

tako da tu zadnju liniju možemo prepraviti u

im[i].src = e.src

I eureka! (ZIP datoteka: hidden_images.zip (25.1K)

• • •

- E, debeli, dobro ti ovo!

- Pa reko si, jednostavno. Hajd' sad, zovi na pivo!

- Dobro, a šta s ostalima?

- Kojim ostalima?

- Pa šta s ekipom koja čita ovaj blog? Ja ti moram platit pivo, a oni ne?

- Ne brini. Ubacio sam im virus u ovaj tekst. Ako mi u slijedećih 2 mjeseca ne plate pivo eksplodirat će im komp.

- Super. Idemo, znam di ima nova konobarica...