Сабж
Может ли сайт узнать о посещении его через Selenium?
#1
Отправлено 21 сентября 2015 - 11:51
#2
Отправлено 21 сентября 2015 - 11:58
Встречный вопрос: а надо, чтобы узнал, или надо, чтобы не узнал?)
В любом случае, я думаю, это корректируется userAgent'ом.
Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©
#3
Отправлено 21 сентября 2015 - 13:25
Если используете стандартные браузеры, то только по косвенным признакам, таким как скорость.
Или возможно отловить функции JS которые пренадлежат селениуму, но это нужно именно их ловить внутри сайта, не думаю что это кто то будет делать.
#4
Отправлено 21 сентября 2015 - 13:44
Ну, если их надо "подружить", т.е. указать сайту, что работает селениум, то через userAgent можно, как я и говорил выше :)Если используете стандартные браузеры, то только по косвенным признакам
Если же задача в том, чтобы не дать селениуму воспользоваться сайтом - то да, как говорил *Shyster* - только косвенные признаки, ибо селениум на то и рассчитан, чтобы моделировать работу пользователя.
Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©
#5
Отправлено 21 сентября 2015 - 14:02
Я обычно завожу селениум в букмекерскую контору, чтобы получить коэффициенты в удобном виде, но правила БК это запрещают.
Насколько я понял, стоит этого опасаться.
#6
Отправлено 21 сентября 2015 - 14:13
Я обычно завожу селениум в букмекерскую контору, чтобы получить коэффициенты в удобном виде, но правила БК это запрещают.
Насколько я понял, стоит этого опасаться.
А у меня руки никак не дойдут приспособить селениум для бытовых нужд :)
По сабжу:
1. ставьте задержки, проматывайте страницы
2. всё-таки проверьте userAgent, что там ничего лишнего
3. считывайте данные под проксёй с левого акка
4. прекратите кормить тунеядцев
ПыСы а БК прямо прописал селениум?) или запрещает автоматизировать?
Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©
#7
Отправлено 21 сентября 2015 - 14:28
WebDriver добавляет в элемент html специальное свойство webdriver="true".
По этому признаку его можно обнаружить, добавив на страницу несложный скрипт, который проверяет это свойство и при его наличии блокирует действия.
21-09-2015 17-24-59.png 22,42К 5 Количество загрузок:
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#8
Отправлено 21 сентября 2015 - 14:30
А вот на серверной стороне -- сложнее, потому что UserAgent -- оригинальный, да и все остальные части запроса тоже ничем не выдают наличие Selenium.
Отличить человека от робота помогает только поведенческий анализ.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#9
Отправлено 22 сентября 2015 - 09:18
Всем проще было сразу ответить: "Нет"
#10
Отправлено 22 сентября 2015 - 09:25
Всем проще было сразу ответить: "Нет"
Алексей показал, что такая категоричность неверна)
Если мы хотим показать серверу, что тут селениум - мы можем показать (ответ - да)
Если страница хочет знать, селениум это или нет - она может увидеть (ответ - да)
Если селениум хочет спрятаться от сервера - только поведенческий анализ на сервере поможет, да и то, не совсем так) (ответ - скорее нет, чем да)
Так что скорее ответ "Скорее да, чем нет, но кто будет заморачиваться?")
Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©
#11
Отправлено 22 сентября 2015 - 09:33
Вопрос звучал как:
Может ли сайт узнать о посещении его через Selenium?
Я отвечаю "Нет". Мы же говорим о серверной стороне (слово "сайт")?
А поведенческий анализ это уже другая история. По умолчанию возьмем одно действие, указанное в вопросе "Посещение сайта", то есть заход на страницу. That's all!
#12
Отправлено 22 сентября 2015 - 09:45
Покурил, родилось решение:
1. Страница видит webdriver="true" в теге html
2. Скрипт на странице отправляет запрос на сервер, что тут такая бяда
3. ...
4. PROFIT!!!
Сервер знает, что на такую-то страницу зашёл веб-драйвер)
Поправьте меня, если я неправ)
Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©
#13
Отправлено 22 сентября 2015 - 15:33
В общем, Selenium объявляет о своём присутствии, но...
Системы поведенческого анализа не слишком распространены, и на этом уровне пока практически никто не защищается. Ну, может быть, отслеживают частоту действий -- так это легко победить, добавив "замедлители" в сценарии.
Что касается добавления свойства webdriver в дерево DOM -- ничто не мешает сделать "самопальную" сборку Selenium, в которой эта фича отключена. Код же открытый.
Но тут важно помнить, что если вы нарушаете правила использования какого-либо сервиса -- вы находитесь не только в технической плоскости, но также в этической и юридической. И если вы нарушаете условия, удачно замаскировавшись -- это применение формулы "не пойман не вор". На самом деле вор. Просто не пойман.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#14
Отправлено 23 сентября 2015 - 08:46
Покурил, родилось решение:
1. Страница видит webdriver="true" в теге html2. Скрипт на странице отправляет запрос на сервер, что тут такая бяда
3. ...
4. PROFIT!!!
Сервер знает, что на такую-то страницу зашёл веб-драйвер)
Поправьте меня, если я неправ)
Но это уже костыль. Мы же говорим о данных по умолчанию (userAgent, IP и т.д.)
Кстати автор не уточнил, что именно он имел ввиду под Selenium, если говорить о Selenium IDE (Builder), то он ничего не добавляет в DOM.
#15
Отправлено 02 сентября 2017 - 18:25
Насколько сейчас это актуально? http://prntscr.com/gg9qic - как сейчас я вижу данный атрибут не добавляется. Сейчас есть какие-то явные "флаги"?
Вы писали о своей сборке браузера. есть материалы у кого-то под рукой о создании браузера и о том как их подружить с Селениумом?
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных