Некоторое время назад в рассылке 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