Определение количества плагинов
Здравствуйте!
Возможно мой вопрос покажется вам странным, но очень нужен подобный код. В последнее время поисковые боты стали распозновать JS, чего бы очень не хотелось. Я придумал, метод шифрования с ключом. Вот ключ-цифру мне и нужно создать т.о., чтобы бот не смог распознать ключ, а браузер да. Ключ-переменная должна быть все время одинаковой, например 1 для браузера и 0 или -1 для бота. Мне пришло в голову только один вариант, это определение количества установленных плагинов в браузере, т.к. я подозреваю, что у поисковых ботов таких плагинов не будет. Тогда у браузеров количество плагинов всегда будет >0, а у бота=0 С Firefox все просто navigator.plugins.lenght, а вот с IE и оперой проблема. Посоветуйте решение проблемы. Спасибо Возможно вы что-то еще посоветуете! |
Цитата:
а вообще, лучше вам решать задачу серверными силами, ибо ЕСЛИ поисковые боты выполняют JS, то они могут и эмулировать любое окружение. зато заголовок User-Agent они посылают исправно и правдиво. вот и фильтруйте на сервере что посылать людям, а что ботам.правда этот трюк есть незаконным для поисковиков. И в конце-концов, зачем вам понадобилось блокировать JS от поисковиков? |
Боты уже года два, как научились испольнять js, с каждым месяцем они испольняют js все качественнее. Для этого у каждой поисковой системы есть спец боты, которые эмулируют почти все, Юзер Агент чаще всего берут от IE, подставляют вымышленный реферер, и определить такого бота можно только по частоте захода на сайт и по хуизу. такие спец боты плюют на robots.txt и на nofollow.
С помощью JS я ставлю рекламу! А например гугл бот автоматически понижает рейтинг сайта из-за рекламы, если только это не реклама гугладс. Поэтому например если с помощью Js определить стоит ли на браузере флеш, и получить true, т.е. =1, то у спец бота, который испольняет js вряд ли стоит флеш и у него будет false. Как я уже писал для firefox проблем нет(navigator.plugins), но для Ie я столкнулся с проблемой определить установлен ли флеш для IE. Помимо флеша можно определять квиктайм и т.д. Поэтому лучшим способом было бы определить количество плагинов в браузере. |
а откуда такая у вас информация?
требую пруфлинка. я конечно не спец в индексаторах, но насколько я знаю, все честные индексаторы(гугл,яша,и еще кууча поисковиков) имеют собственные юзер-агенты для ботов, а не подделываются под какой-то браузер. ИМХО с юзер-агентом осла к вам могут ходить только честные пользователи, либо нечестные боты(парсеры конкурентов, которые стремятся украсть контент). но даже, если к вам все-таки ходят поисковики, и все-таки выполняют ваш JS(ИМХО они его только анализировать смогут, а не выполнить), то либо у них собственный движок интепретатора, который вам правды все равно не расскажет, либо стоит под виртуалкой какой-нибудь браузер(делаю ставку что мозилла) модифицированный. в таком случае вы его тоже навряд ли отличите от обычного пользователя. Вывод:наиболе адекватная мера борьбы с такими поисковиками-сбор ихних IP, и выдача другого контента. IMHO: считаю что проблема выполнения скриптов(а также подмена ими User-Agent) ботами основных поисковиков надумана и высосана из пальца. и буду так считать, до тех пор пока не увижу пруфлинк на упоминание этого феномена. если они это делают уже два года, то должно было появится куча статей на эту тему. я ни одной не нашел |
К сожалению я не такой спец по JS, иначе бы не задавал вопрос, и я могу не знать, какие могут быть сложности у спец ботов, чтобы эмулировать полностью браузер. на чем они могут заткнуться. Вряд ли они умеют испольнять Ajax, но проблема в том, что Ajax не умеют испольнять старые браузеры.
А мне жалко терять пользователей. Поэтому желательно, чтобы код работал в IE>=6.0, Firefox>=1, Opera >=7 |
вот еще.
если вам понижают рейтинг за рекламу, то это совсем не значит, что для этого надо выполнять JS для этого достаточно прочесть ссылки скриптов, и проверить по базе какая из них ведет на рекламную сеть. еще можно проверить на вхождение всяких "универсальных" кусков кода всплывающей и нетонущей рекламы в случае же рекламы необнаруживаемой этими двумя способами, способов ее найти автоматически, даже выполняя JS нету. как вы опеределите, что эта приатаченная картинка есть еркламный банер, а не например заголовок сайта, меняющийся от времени суток.ИМХО, никак. для обхода таких бнероопределяющих конструкций, посоветовал бы шифровать ссылки на банерообменки(динамически� � атач тегов script,ссылка с перенаправлением), и шивровать скрипты, отвечающие за рекламу(например packer-ом).после этого сравнтиельный анализ не должен выявлять у вас рекламу. |
Итак первые два спец бота это ask, притом с разным ЮзерАгентом, третий это msn, последний гуглбот.
Запросов столько приходит от этих спец ботов, что это просто не могут быть реальные люди! Код:
66.235.124.132 - - [25/Mar/2009:05:22:55 -0500] "GET /drg.php?pzapros=brf HTTP/1.1" 200 31 "http://URL" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a1) Gecko/20070308 Minefield/3.0a1" |
Да втом-то и проблема, если брайзер сможет расшифровать рекламу, то и спец боты это смогут(
Так, что мне бы использовать такую бы функцию в JS, которую бы точно не смогли прочесть боты |
Цитата:
Цитата:
лучше не показать рекламу живому пользователю, чем показать ее боту, в вашей ситуации |
Хорошо.
похоже что это все-ткаи боты поисковиков. по крайней мере whois-ы это подтверждают. с чего вы решили что они выполняют JS? |
Код:
hrg.php?pzapros=brfhttp://www.google.com/searchque;hl=enamp;q=bmyybd+cacxve+++fi+ А подскажите как проверить наличие ajax? для браузеров, которые я перечислил выше? |
Цитата:
пробуете создать объект xmlhttpreauest-а, и обрачиваете все это дело в try-catch если программа вошла в самый внутренний catch, значит не удалось создать объект никаким из способов это ж классический код, с которого начинается изучение Ajax |
|
Спасибо) попробую!)
|
Вроде бы сделал) достаточно простой код, но пока еще не нашел ни одного браузера, где бы это не работало, может я в чем-то ошибся)?
<script language="javascript" type="text/javascript"> var request = false; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = false; } } } if (!request) alert("Error initializing XMLHttpRequest!"); else { request.open("GET", "/", true); request.send(null); document.write("Code="+request.readyState); } </script> |
естественно вы не можете найти ни одного брузера, где бы этоит код не работал.
все основные браузеры давно уже поддерживают AJAX можете попытатся найти где-нибудь в архивах чьих-нибудь первые версии нетскейпа к примеру. или еще что-нибудь из древнего |
Жаль исправить нельзя( code закрыть забыл.
Итак, как я понял если убрать request.send(null); то все время будет Code=1 |
Gvozd,
А что такого невозможного в выполнении ботами поисковиков JavaScript? Его даже браузеры на мобильных выполняют, а ведь у гугла есть свой Chromium и отдельный JavaScript-движок. Парсить страницы не plain text'ом, а распарсеным HTML — не такая уж и невыполнимая задача. Другой вопрос, что делать этого не станут, ведь слишком много динамических элементов страницы выполняют код в контексте текущего документа, что совершенно не интересует поисковика. |
Андрей Параничев,
ну, я и отталкивался от нецелесообразности по нагрузке. хотя, прочтиав статью выше, полагаю, что исполнение JS-вполне может быть выборочным.например пропускать все действия с DOM-ом, не генерящих новых ссылок.ну, и еще всякого разного можно пропустить. а впринципиальной возможности самой, я не сомневаюсь, ибо видел интепретатор для JS написанный на PHP(не проверял). но вот целесообразность полного выполнения JS сомнительна. PS если выполнение JS-а поисковиками не затрагивает DOM, то можно делать проверку путем различных манипуляций с DOM-ом. к тому же ссылки можно по кускам склеивать например во временную тиекстовую ноду, и только после получения ссылки(поисковик ее не увидит, если не вполнит опреации с DOM-ом) сувать ее пользователю |
Gvozd, Вы конечно про нецелесобразность правы! Именно поэтому сначала приходит бот, который просто скачивает html страницу, ее анализируют на сервере, и если страница оказалась подозрительной, то на нее уже приходит спец бот, и уже шмонает ее по полной! Спец бот может прийти и через месяц. Но сейчас компы стали такие мощные, что проверять сайты с большим PR можно и чаще, чем раз в месяц.
|
Часовой пояс GMT +3, время: 21:13. |