"Кто там шагает правой?!
Левой! Левой! Левой!"
(В. Маяковский "Левый марш")
Когда начинающий порно-вебмастер слегка забогатеет и поднаберется опыта, он начинает понимать, что хорошие деньги можно сделать только на хорошем, незаюзаном контенте. Такой контент на ТГП не валяется, его надо покупать у провайдеров контента. Деньги платить. И вот, представляет он, заплачу я деньги, выложу контент на сайт, а потом придет на сайт такая же юная сволочь, какой и я был когда-то, и весь мой за кровные купленый контент стырит. Просто кликнет на фотке правой мышиной кнопкой, выберет в контекстном меню строчку "Save picture as…" и в свой вонючий комп утащит, заныкает. Как говорил товарищ Саахов: "Слюшай, абыдна, да?!"
Так вот, чтобы не было потом мучительно больно, не грех как-то подстраховаться от этих злоумышленников (одним из которых и сам был еще недавно). Все мы программисты понемногу, поэтому самым простым представляется перехват события "нажатие правой кнопки мыши" и выполнение по этому событию чего-то защитно-нештатного. Реализуется требуемое простым (для случая IE4+) ява-скриптом:
<script language="javascript">
function click() {
if (event.button==2) {
alert(’Sorry, this function is disabled.’) }}
document.onmousedown=click;
</script>
И что, шестью строчками можно застраховаться от "кул-хацкеров"?! Вот лично вас этот скрипт остановил бы, если бы вы задались целью стащить картинку? Нет и еще раз нет. Двери запирают не от воров, а от соседей. Которые, войдя в незапертую комнату, неожиданно для себя становятся ворами. От своего брата-порномастера явой не прикроешься, это надо серверный скрипт ставить, который определял бы юзер-агент и автоматически показывал бы дулю всяким Даунзиллам и Телепортам. Или вместо JPеGа с 64К цветов отправлял бы 256-цветный BMP. Вот это радикально. Вручную от сайт-даунлоадеров мы можем застраховаться лишь реализацией навигации через форм-кнопки и подстановкой УРЛов посредством скрипта. Так что, поймем для себя, что страхуемся мы не от коллег, а от не в меру запасливых серферов, которые накапливают наши картинки у себя на винте и потом мастурбируют офф-лайн, не платя нам ни копейки. (Во сформулировал: мы, оказывается, взимаем деньги за чужую мастурбацию! Расскажи кому — не поверят!).
Таким образом, мы ставим защиту от серфера, а серфера надо бы заставлять что-либо полезное для нас делать. Например, нажмет он правую кнопку, а вместо "Save picture as…" получит спонсорским сайтом по морде:
TURN RIGHT CLICKS INTO LEFTS by "Juggernaut of Java" aka Mciver
<HTML><HEAD><TITLE></TITLE></HEAD>
<SCRIPT>
var NS4=IE4="";
function init()
{
NS4=document.layers;
IE4=document.all;
if(NS4){document.captureEvents(Event.MOUSEDOWN);}
if(NS4||IE4){document.onmousedown=mouseClicked;}
}
function mouseClicked(e)
{
if(NS4){button=e.which;}
if(IE4){button=window.event.button;}
switch(button)
{
case 1 : {break;}
default :
{
alert(’Save this picture?’)
window.location.href = "PUT YOUR LINK HERE";
return false;
break;
}
}
if(NS4){document.routeEvent(e);}
return true;
}
</SCRIPT>
<BODY onLoad="init()">
</BODY>
</HTML>
Пара примечаний: не надо пытаться этим скриптом отправлять серфера на клик-спонсора, такое будет приравнено клик-спонсором к заходу по букмарке и вы не получите ни гроша. Отправляйте так на блинд- или партнершип-спонсора, а для случая клик-спонсора открывайте консоль со спонсорским баннером.
Если вы имеете доступ к CGI, то вы можете поставить серверный скрипт, который будет для каждой большой фотографии генерировать страничку с предустановленым ява-скриптом:
<!—This script will allow you to turn all of your images into a billboard for sponsor ads and as an added kick in the ass when they try to save the image to thier hard drive it sends up a popup alert to save this picture? They click ok and off they are to a sponsors site. It’s going to piss some people off, but for a free site living on sponsor ads not a bad deal.—>
#!/usr/bin/perl
$title = "Page title here";
$header = <<EOM;
<!— begin header —>
<SCRIPT>
var NS4=IE4="";
function init()
{
NS4=document.layers;
IE4=document.all;
if(NS4){document.captureEvents(Event.MOUSEDOWN);}
if(NS4||IE4){document.onmousedown=mouseClicked;}
}
function mouseClicked(e)
{
if(NS4){button=e.which;}
if(IE4){button=window.event.button;}
switch(button)
{
case 1 : {break;}
default :
{
alert(’Save this picutre?’)
window.location.href = "http://domain.com";
return false;
break;
}
}
if(NS4){document.routeEvent(e);}
return true;
}
</SCRIPT>
<BODY onLoad="init()">
<center>
<IMG src="http://domain.com/logo.gif">
<BR><BR>
<!—begin ad—>
[sponsor ad here]
<!—end ad—>
</center>
<!— end header —>
EOM
1;
$footer = <<EOM;
<!— begin footer —>
<center>
<!—this section if you want a back link—>
<A HREF="javascript:history.go(-1);">Back 1</A>
<!—end back link—>
[sponsor ad]
</CENTER>
<!— end footer —>
EOM 1;
$file = "$ENV{’QUERY_STRING’}";
print "Content-type: text/htmlnn";
print "<html><head><title>$title</title></head>n";
print "<body bgcolor=000000 TEXT=FF00FF LINK=FF00FF>n";
print "$headern";
print "<p><center><img border=5 src="$file"></center><p>n";
print "$footern";
print "</body></html>n";
Save it as bla.cgi chmod it to 755….making several copies is advisable so visitors dont see the same ad for every image. The call can be from thier own site if they have a cgi-bin, but signing up for a free server acct with cgi ability works too. It doesn’t work for all free adult hosting sites, but does for some. The call is simply <a href="http://thedomain-the-script-is-on.com/cgi-bin/bla.cgi?http://the-domain-the-image-is-on.com/image.jpg"><img src="thumbnailimg.jpg"></a>
То есть, мало того, что картинки под охраной, да еще дополнительно пара баннеров показана! Сыт, пьян и нос в табаке!
Отдохнем от перлов программистской мысли и немного пофилософствуем. Совершаем ли мы противозаконный поступок, сохраняя на винте не принадлежащую нам картинку? Мы знаем, что просмотр картинок вообще неразрывно связан с сохранением их на винте в директории "Temporary Internet Files", это особенность работы браузера. Серфер может совсем и не мудрить с "Save picture as…", а по окончании сеанса вытянуть все просмотренные картинки из кеша браузера. Мы ему в этом помешать не можем. Но помогать ему мы тоже не обязаны, поэтому и затрудняем всячески сохранение контента на винте. С многократным использованием однократно купленной информации более-менее безуспешно бьются большие дяди (например, монстры звукозаписи с napster-подобными сервисами) и удовлетворяющее всех компромиссное решение пока не найдено. Зато мы точно знаем, где в нашем бизнесе заканчивается баловство и начинается криминал: в момент начала такого ИСПОЛЬЗОВАНИЯ чужого контента, которое наносит или может нанести моральный, а хуже того, финансовый ущерб законному владельцу. Воровать плохо, воровать у своих же — гнусно вдвойне. Все, для чего вы можете использовать сохраненные на винте картинки — для личного сексуального возбуждения. И только.
Теперь вернемся к нашим баранам. В чем единственный и огромный недостаток всех описаных выше решений проблемы "правой кнопки"? В реализации их через ява-скрипт. Серфер отключает поддержку ява-скрипта и ворует картинки полной горстью. Не скриптом надо защищаться, а HTML-ом. Щелкните правой кнопкой на картинке ниже и выберите "Save picture as…" — сохраните вы не картинку с интимной сценой, а однопиксельный прозрачный GIF с неким говорящим именем:
Вот код этого чуда природы:
<table border=0 cellpadding=0 cellspacing=0 width=241 height=325 background=Pics/Loading.gif>
<tr>
<td width=241 height=325 background=Pics/pirate.gif><img src=Pics/Dont_grab_my_pics_facked_bastard.gif width=241 height=325 border=0></td>
</tr>
</table>
Каждая ценная картинка показывается не просто сама по себе, а как бэкграунд ячейки таблицы, причем в саму ячейку положен прозрачный GIF, растянутый до размеров большой картинки и накрывающий ее как стеклом. Бэкграунды отрисовываются не постепенно, по мере загрузки картинки, а одним махом. Поэтому дополнительно в бэкграунд таблицы (именно самой таблицы, а не ячейки) можно положить GIF с надписью "Loading…" — очень эстетично получается. Пока грузится картинка, серфер читает рекламу и смотрит на баннеры. Мое изобретение, пользуйтесь, если хотите.
Но от попадания картинки в "Temporary Internet Files" не спасает ничего. Ничего… кроме ява-апплета, в котором вы показываете фотки. Апплет напрямую скачивает картинки с сервера и ничего не кеширует. Говорите, дать вам код такого апплета?! Ну уж, дудки! Найдите его в Инете сами, их там полным-полно… Только… сайт с апплетом… бр-р-р!.. по мне — пусть уж лучше картинки воруют…
02.10.99
Автор: Слава О.
Свежие комментарии