Я работаю в местном правительстве, которое выставляет счета за воду и вывоз мусора. Сегодня мне позвонил клиент, который позвонил ему из «нью-йоркской компании» и попросил его номер клиента и пин-код, чтобы предоставить им доступ к его онлайн-аккаунту, чтобы они могли «очистить» его потребление воды с сайта. Очевидно, они собирают эту информацию из нескольких квартир по какой-то причине, которую он не мог вспомнить. Конечно, это вызывает у меня тревогу, и я сказал ему не сообщать им эту информацию. Я также сказал ему, что если они перезвонят и сообщат этой компании, они могут связаться с нами напрямую, чтобы получить эту информацию, если они им потребуются.
Теперь, если один из наших клиентов получил звонок, я считаю, что можно с уверенностью предположить, что другие получили такой же или похожий звонок, и они могли или не могли предоставить эту информацию. Как я могу проверить наши журналы, чтобы узнать, не заходит ли на наш сайт бот и сканирует ли наши данные? Я также считаю, что мы должны заблокировать этого бота и предотвратить дальнейшие попытки.
Примечание. Единственная информация, хранящаяся на веб-сервере, - это имя и адрес клиента, водопользование и стоимость счетов с общей суммой к оплате. Они также могут оплатить счет. Мы не храним информацию об учетной записи в Интернете. Таким образом, в целом информацию на веб-сервере можно считать общедоступной (хотя и по надлежащим каналам).
Невозможно обнаружить или заблокировать хорошо написанного бота, который просматривает только небольшое количество страниц - его поведение может быть неотличимо от поведения настоящего пользователя.
Вы можете заблокировать или ограничить скорость любого IP-адреса одного источника, который обращается к более чем одной учетной записи. Как упоминалось выше, для этого необходимо знать, что осуществляется доступ не только к учетной записи, и это может быть нетривиальной задачей. Это также может заблокировать жильцов в многоквартирном комплексе, которые, конечно, имеют Интернет с NAT в качестве «полезности».
Вы можете реализовать CAPTCHA.
Если ваш веб-сайт сканирует экран бота, то единственным указанием на это будет в журналах вашего веб-сервера, и это будет трудно (в лучшем случае) обнаружить. Обычно ботов в журналах можно увидеть через строку User-Agent, но на самом деле она используется должным образом только для корректных ботов, таких как поисковые роботы. Все остальные гадости будут устанавливать строку пользовательского агента в соответствии с чем-то распространенным, например, с одним из основных браузеров, чтобы скрыть себя.
Скорее всего, вы хотите отслеживать IP-адреса, которые обращаются к определенным URL-адресам, которые вы можете напрямую связать с конкретным клиентом. Это еще больше усложняется, если запросы являются POST-запросами, поскольку информация о клиенте, скорее всего, находится в данных POST, а не в URL-адресе, который вы видите в запросе GET.
Честно говоря, удачи тебе, к сожалению ... Не уверен, что ты сможешь далеко уйти.
Если они очищают экран, они, вероятно, обращаются только к целевой странице без какого-либо связанного содержимого, такого как css, jsp и изображения. Вам нужно будет выполнить поиск в журналах доступа, чтобы узнать, происходит ли подобная активность. Вы можете поймать некоторые законные браузеры, которые не перезагружают данные, которые уже кэшированы.
Вы можете обнаружить чрезмерное количество посещений данной страницы с одного IP-адреса. Это может поймать нескольких интернет-провайдеров, которые используют NAT для доступа своих клиентов.
Проверка GeoIP должна быстро определить, есть ли у вас доступ из других стран. Некоторые из них могут быть законными клиентами, которые живут за границей или путешествуют.
Если на вашем сайте есть функция новостей, возможно, стоит опубликовать сообщение об этой ситуации. Это может дать вам еще несколько отчетов.
Регистрируйте IP-адреса каждого доступа к учетной записи. Через некоторое время вернитесь и запросите свои журналы, назначив точку для каждого IP-адреса для каждой учетной записи, к которой он обращается, а затем выполните сортировку, чтобы найти IP-адреса, которые использовали большинство учетных записей.
Бьюсь об заклад, после того, как вы исключите некоторые библиотеки и тому подобное, вы найдете своего виновника, даже если они очень медленно или редко получают доступ к учетным записям. Это начинает проявляться через месяц, если они делают это из одного и того же места - что, скорее всего, так и есть.
Некоторые другие перестановки: первое ограничение для учетных записей, к которым был осуществлен доступ с более чем одного IP - реального пользователя и парсера. Найдите учетную запись любого пользователя, который, как известно, выдал информацию.
Не могли бы вы пометить и замедлить (ограничение скорости) и / или заблокировать бота, если у вас был один IP-адрес для доступа к нескольким учетным записям? Конечно, несколько реальных пользователей могут использовать один IP-адрес (скажем, в офисе), но какова вероятность того, что все сотни человек будут пользоваться услугой и одним и тем же IP-адресом? Кроме того, у бота, вероятно, будет каждый раз один и тот же пользовательский агент (в зависимости от их программирования).
В зависимости от того, как вы получите нужную информацию, вы можете скрыть данные на экране или в веб-формах. Как и большинство ботов, не обрабатывают javascript, поэтому вы можете использовать его для изменения данных при отправке.
вы можете реализовать некоторый javascript на странице входа. когда страница загружается, установите действие формы примерно так http://mydomain.ltd/login/bot
, когда пользователь нажимает кнопку отправки (входа в систему), измените действие на действительный URL или document.getElementById('login_form_id').action = "http://mydomain.ltd/login/human"
.
Если бот сканирует ваши данные, то обычно бот не поддерживает JS. Конечно, они поймут, почему бот не работает. Но вы можете регистрировать неудачные IP-адреса, а затем сравнивать их позже с успешно зарегистрированными адресами.
Если данные собирает человек, то понять это сложно.
Также вы можете проанализировать строку пользовательского агента и IP-адрес. Если пользователь выходит из системы, а затем входит в другую учетную запись (через 5 минут?), Вы можете войти в нее. Если это человек, они будут смотреть одну учетную запись, затем другую и т. Д.
Это мерзко, но в прошлом я обыграл простые скребки экрана, используя серебристый свет или вспышку, чтобы помещать текст на экран в виде изображений, а не текста. По крайней мере, на этом этапе они должны распознавать изображения, а не просто захватывать вывод HTML и анализировать его.