Перейти к содержимому

Фотография

Может ли сайт узнать о посещении его через Selenium?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 14

#1 storming

storming

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 21 сентября 2015 - 11:51

Сабж


  • 0

#2 vkazar

vkazar

    Активный участник

  • Members
  • PipPip
  • 128 сообщений
  • ФИО:Виктор
  • Город:Москва

Отправлено 21 сентября 2015 - 11:58

Встречный вопрос: а надо, чтобы узнал, или надо, чтобы не узнал?)

 

В любом случае, я думаю, это корректируется userAgent'ом.


  • 1

Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©


#3 Shyster

Shyster

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 21 сентября 2015 - 13:25

Если используете стандартные браузеры, то только по косвенным признакам, таким как скорость.

Или возможно отловить функции JS  которые пренадлежат селениуму, но это нужно именно их ловить внутри сайта, не думаю что это кто то будет делать. 


  • 0

#4 vkazar

vkazar

    Активный участник

  • Members
  • PipPip
  • 128 сообщений
  • ФИО:Виктор
  • Город:Москва

Отправлено 21 сентября 2015 - 13:44

Если используете стандартные браузеры, то только по косвенным признакам

Ну, если их надо "подружить", т.е. указать сайту, что работает селениум, то через userAgent можно, как я и говорил выше :)
Если же задача в том, чтобы не дать селениуму воспользоваться сайтом - то да, как говорил *Shyster* - только косвенные признаки, ибо селениум на то и рассчитан, чтобы моделировать работу пользователя.
  • 0

Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©


#5 storming

storming

    Новый участник

  • Members
  • Pip
  • 8 сообщений

Отправлено 21 сентября 2015 - 14:02

Я обычно завожу селениум в букмекерскую контору, чтобы получить коэффициенты в удобном виде, но правила БК это запрещают.

Насколько я понял, стоит этого опасаться.


  • 0

#6 vkazar

vkazar

    Активный участник

  • Members
  • PipPip
  • 128 сообщений
  • ФИО:Виктор
  • Город:Москва

Отправлено 21 сентября 2015 - 14:13

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

А у меня руки никак не дойдут приспособить селениум для бытовых нужд :)

По сабжу:
1. ставьте задержки, проматывайте страницы
2. всё-таки проверьте userAgent, что там ничего лишнего
3. считывайте данные под проксёй с левого акка

4. прекратите кормить тунеядцев  :rtfm:

 

ПыСы а БК прямо прописал селениум?) или запрещает автоматизировать?


  • 0

Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©


#7 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 21 сентября 2015 - 14:28

WebDriver добавляет в элемент html специальное свойство webdriver="true".

По этому признаку его можно обнаружить, добавив на страницу несложный скрипт, который проверяет это свойство и при его наличии блокирует действия.

 

Прикрепленный файл  21-09-2015 17-24-59.png   22,42К   5 Количество загрузок:


  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#8 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 21 сентября 2015 - 14:30

А вот на серверной стороне -- сложнее, потому что UserAgent -- оригинальный, да и все остальные части запроса тоже ничем не выдают наличие Selenium.

Отличить человека от робота помогает только поведенческий анализ.


  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#9 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 22 сентября 2015 - 09:18

Всем проще было сразу ответить: "Нет"  :smile:


  • 0

#10 vkazar

vkazar

    Активный участник

  • Members
  • PipPip
  • 128 сообщений
  • ФИО:Виктор
  • Город:Москва

Отправлено 22 сентября 2015 - 09:25

Всем проще было сразу ответить: "Нет"  :smile:

Алексей показал, что такая категоричность неверна)

 

Если мы хотим показать серверу, что тут селениум - мы можем показать (ответ - да)

Если страница хочет знать, селениум это или нет - она может увидеть (ответ - да)

Если селениум хочет спрятаться от сервера - только поведенческий анализ на сервере поможет, да и то, не совсем так) (ответ - скорее нет, чем да)

 

 

Так что скорее ответ "Скорее да, чем нет, но кто будет заморачиваться?")


  • 1

Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©


#11 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 22 сентября 2015 - 09:33

Вопрос звучал как:

 

Может ли сайт узнать о посещении его через Selenium?

Я отвечаю "Нет". Мы же говорим о серверной стороне (слово "сайт")?

А поведенческий анализ это уже другая история. По умолчанию возьмем одно действие, указанное в вопросе "Посещение сайта", то есть заход на страницу. That's all!


  • 0

#12 vkazar

vkazar

    Активный участник

  • Members
  • PipPip
  • 128 сообщений
  • ФИО:Виктор
  • Город:Москва

Отправлено 22 сентября 2015 - 09:45

Покурил, родилось решение:
1. Страница видит webdriver="true" в теге html

2. Скрипт на странице отправляет запрос на сервер, что тут такая бяда

3. ...

4. PROFIT!!!

 

Сервер знает, что на такую-то страницу зашёл веб-драйвер)

Поправьте меня, если я неправ)


  • 0

Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©


#13 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 22 сентября 2015 - 15:33

В общем, Selenium объявляет о своём присутствии, но...

 

Системы поведенческого анализа не слишком распространены, и на этом уровне пока практически никто не защищается. Ну, может быть, отслеживают частоту действий -- так это легко победить, добавив "замедлители" в сценарии.

 

Что касается добавления свойства webdriver в дерево DOM -- ничто не мешает сделать "самопальную" сборку Selenium, в которой эта фича отключена. Код же открытый.

 

Но тут важно помнить, что если вы нарушаете правила использования какого-либо сервиса -- вы находитесь не только в технической плоскости, но также в этической и юридической. И если вы нарушаете условия, удачно замаскировавшись -- это применение формулы "не пойман не вор". На самом деле вор. Просто не пойман.


  • 3
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#14 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 23 сентября 2015 - 08:46

Покурил, родилось решение:
1. Страница видит webdriver="true" в теге html

2. Скрипт на странице отправляет запрос на сервер, что тут такая бяда

3. ...

4. PROFIT!!!

 

Сервер знает, что на такую-то страницу зашёл веб-драйвер)

Поправьте меня, если я неправ)

Но это уже костыль. Мы же говорим о данных по умолчанию (userAgent, IP и т.д.)

 

Кстати автор не уточнил, что именно он имел ввиду под Selenium, если говорить о Selenium IDE (Builder), то он ничего не добавляет в DOM.


  • 0

#15 as020792

as020792

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Савин Александр Вадимович

Отправлено 02 сентября 2017 - 18:25

Насколько сейчас это актуально? http://prntscr.com/gg9qic - как сейчас я вижу данный атрибут не добавляется. Сейчас есть какие-то явные "флаги"? 

Вы писали о своей сборке браузера. есть материалы у кого-то под рукой о создании браузера и о том как их подружить с Селениумом?


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных