2012-03-30 3 views
0

Являются ли поисковые роботы или спам-боты способными эмулировать/запускать события JavaScript во время чтения страницы?Являются ли поисковые роботы или спам-боты способными эмулировать/запускать события JavaScript?

+0

На каких условиях? Поисковый робот может загружать вашу страницу, чтобы обнюхать ее с помощью выражений; если он сталкивается с формами, он может нанести им удар, чтобы увидеть, что происходит; если он столкнулся с captcha, он может распознать его и посмотреть, может ли он перехитрить его. Программное обеспечение Automator может перемещать мыши и запускать клики, это всегда было так. Вот как работают боты на MMORPG, а также на браузерах. Каков ваш прецедент - вы ужесточили свое приложение? – frumbert

+0

Ну, вы можете видеть на моем сайте: www.omerbase.com - вещь Анти-Спама. Мне было интересно, может ли спам/поисковый робот понять, что DIV доступен для кликов и означает, что это повлияет на подачу формы ... как вы грустно, он может найти javascript с выражениями и найти элемент отношения внутри HTML. так что это может вызвать событие click/hover/etc ... я понял это правильно? –

+0

@ ZlatanOmerović Если ваше приложение становится достаточно популярным, это всего лишь вопрос времени, когда кто-то нажимает «Просмотр источника» и вычисляет, что делает div на клике, и записывает бота, чтобы делать это непрерывно.Так, независимо от того, могут ли поисковые и спам-боты инициировать действие, вы также можете предположить, что * кто-то * напишет бота, чтобы вызвать это действие. –

ответ

0

Here’s Кто-то, кто делает дело, что Google загружает страницы в безголовом WebKit при обходе их, чтобы получить возможность индексировать контент AJAX и по другим причинам. Однако поисковые боты обычно не представляют формы.

Я взглянул на ваш сайт, и защита полностью на стороне клиента. Поскольку HTML-форма - это просто описание того, какой ключ/ценности нужно отправить на какой-либо URL-адрес, нет никакой причины, по которой кто-то не мог бы просто ПОСЛАТЬ эти данные с помощью бота.

Пример:

POST /contact 
/* ... */ 

fullname=SO+test&email=test%40example.com&reason=test&message=test 

Кроме того, и это очень важно, вы наказание законных посетителей таким образом. Есть все причины, по которым JavaScript может быть заблокирован, не загружен или просто не работает.

+0

Да. Вы правы, кроме одного. Кажется, что одна вещь не появляется в форме, как это должно быть, когда она просто загружается. Эта вещь появляется, когда данные в форме заполняются и при нажатии кнопки AntiSpam. Ознакомьтесь с самим собой и проверите каждый элемент ввода в форме, и вы увидите, как я в настоящее время участвую в распознавании людей из ботов. :) –

+0

Собственно, сценарий не удался для меня, и это одна из причин, по которой я добавил предупреждение. Я нажал кнопку антиспама, заполнил форму, но кнопка отправки не была включена. Не стесняйтесь добавлять чек, но, пожалуйста, не делайте этого в JavaScript. –

+0

длины указаны в описаниях полей ... действительная почта, длина и т. Д. ... только если вы переопределили скрипт с помощью JS-инъекции через Firebug или что-то :) –

0

Нет, потому что поисковые роботы получают статический поток HTML. Они не запускают никаких событий инициализации, таких как init() или myObj.init(), что находится в вашем JavaScript-коде. Они не загружают внешние библиотеки, такие как jQuery, а также не выполняют код $(document).ready и ни один из стандартных слушателей .click(). Поэтому, если у автора поискового робота есть определенная причина намеренно построить свой поисковый робот для запуска или выполнения блоков <script>, которые находятся на странице, они обычно не будут запускать код JavaScript.

Я написал поисковый робот. Все, о чем я забочусь, это извлечение ссылок & текст со страницы. Тем не менее, я не хочу запускать чужой клиентский компонент календаря или компонент видеоплеер. Я не хочу, чтобы этот JS-код был вставлен в мою базу данных, где он мог оказаться на странице результатов поиска (SERP). Поэтому нет причин запускать команду eval() на любой код в блоках <script> и не запускать ни одно из событий инициализации на уровне JS.

Когда поисковые роботы загружают HTML DOM, обычно в них встроены внешние .js-файлы. Поэтому для выполнения JS потребуется разбор строк для нескольких файлов .js, а затем построение конкатенатора для этих файлов &, затем попытка выполнить все, что было загружено. Это дополнительная работа для автора поискового робота, так как нет никакой выгоды. Мы просто не хотим, чтобы JS-код появлялся где-нибудь в наших SERP. В противном случае просмотр JS-кода в SERP выглядит как плохой результат поиска. Тем не менее, боты могут видеть контент в тегах <script>. & ищут только ссылки на сканирование. Поэтому, возможно, поэтому люди начинают думать, что боты могут выполнять JavaScript, но они действительно разбирают их только для своих текстовых ссылок.

Смежные вопросы