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...