оглавление

Воспрепятствование автоматизированному зеркалированию Веб-узла

Некоторое время назад в рассылке Apache-Talk была дисскуссия, переросшая в сильнофилософские рассуждения о невозможности полной защиты узла от скачивания с доказательствами и т.п., что говорит о хорошем уровне академического образования уважаемых коллег по майл-листу...

Интересное наблюдение как-то мне поведал один из работающих у нас мужичков: "Если дать.... ну нерешаемую задачу студенту (выпускнику) МГУ (в его случае МехМат) и ФизТеха, то (с большой вероятностью) МГУ'шник начнет доказывать невозможность решить задачу, а ФизТех'овец начнет пытаться ее решить. Пусть не на всех возможных значениях параметров, но все же... ау, МехМат! И хоть сам я являюсь представителем школы МГУ (правда, не МехМат а ВМиК), попробую (хоть тут) чуток поопровергнуть такое мнение относительно родной Альма-матер.

Врочем, извините за столь длинное вступление. Итак, хочу немножко поделиться мыслями (возникшими в связи со вчерашней бессонницей) на тему "воспрепятствование автоматизированному миррорингу Веб-узла".

1. JavaScript. До чего ж люблю я Netscape... такую классную штуку придумали. А подлый Microsoft его передрал - а когда пишешь, что MS JavaScript не совместим с оригинальным - отписывают: "У нас, мол, не JavaScript, а JScript." Почувствуйте разницу.

Итак, как мы обычно описываем ссылки?

<a href='file.html'>Ссылка</a>.

А кто сказал, что это единственный способ их описания? Вот почти тоже самое:

<a href='javascript:document.location =
 "file.html"'>Ссылка</a>

Каюсь, таким образом отсекаются пользователи Lynx'а и некоторых браузеров, не поддерживающих JavaScript. Но если человеку сильно нужно посмотреть сайт, то он запустит-таки Netscape. А в связи с тем, что сайт хотят смироррить, вероятность этого "нужно" довольно высока.

Конечно, можно научить wget брать подобные ссылки. Но можно ведь пойти дальше:

<script> Link = 'file.html' </script>
...
<a href='javascript:document.location = Link'
>Ссылка</a>

Кроме того - а кто сказал, что ссылки необходимо размещать явно в теле документа:

<script> document.write(unescape('%3C') + 'a hr' +
'ef="file.html">' + 'Ссылка' + unescape('%3C') + '/a>')
 </script>

Понятное дело, этим дело далеко не ограничивается, и тут уже приходится писать wget