Робот или человек?

crazy fox
На сайте с 12.01.2007
Offline
73
725

Уважаемые веб-программисты, помогите разобраться с одним вопросом. Хочу на сайт поставить скрипт, который бы определял, откуда идет запрос, с компьютера пользователя или это работает серверная программа. Можно ли это сделать и как?

В-общем решается две задачи:

1. Нужно защитить форму авторизации от брудфорса, но по некоторым причинам нельзя воспользоваться KCAPTCHA.

2. Нужно защитить контент сайта от автоматического копирования роботами.

ewg777
На сайте с 04.06.2007
Offline
225
#1

1. Используейте другую капчу.

2. /ru/forum/386152

Для размышения - http://habrahabr.ru/blogs/webdev/66732/

crazy fox
На сайте с 12.01.2007
Offline
73
#2
ewg777:
1. Используейте другую капчу.
2. /ru/forum/386152
Для размышения - http://habrahabr.ru/blogs/webdev/66732/

Вопрос не в том, чтобы запретить копирование вообще, а только парсинг ботами. А вот "для размышления" - очень интересно, спасибо.

[Удален]
#3

Нельзя использовать KCAPTCHA? Используйте reCAPTCHA или напишите свою как Вам уже посоветовали

1. Защита от брутфорса - N раз пароль введен неверно, - запрещаем доступ на 15 минут, например... Отслеживаем сколько раз пользователь ввел пароль неверно и баним после определенного кол-ва неверных вводов. Один из самых действенных способов.

2.

Вопрос не в том, чтобы запретить копирование вообще, а только парсинг ботами.

Missoin impossible.

Поверьте - как Вы не защищайтесь, я могу написать парсер, который обойдет все эти защиты. Парсер в любом случае имитирует работу браузера, а это всего лишь - передача заголовков на определенный URI - вот и всё. Естественно, если я не ошибся в URI, он ответит 1. Header-ом, HTML-страницей, с которой считать информацию - раз плюнуть. Вы же не будете для каждой страницы делать уникальную HTML разметку, чтоб свести на нет работу парсера? Не будете? Ну вот и славно :)

T
На сайте с 13.01.2009
Offline
50
#4

Если бот без парсера то можно динамические поля сделать

[Удален]
#5

So1, и я и с достаточно уникальной разметкой парсил данные + подмешенные теги ненужные которые через ксс прятались. работы всего то на 15 минут больше и не более, от персеров невозможно защититься, я могу предположить одну идею как это сделать, но это может отсеять и часть клиентов :)

crazy fox
На сайте с 12.01.2007
Offline
73
#6
Troytft:
Если бот без парсера то можно динамические поля сделать

Можете пояснить свою идею..

crazy fox добавил 12.08.2009 в 19:09

So1:
1. Защита от брутфорса - N раз пароль введен неверно, - запрещаем доступ на 15 минут, например... Отслеживаем сколько раз пользователь ввел пароль неверно и баним после определенного кол-ва неверных вводов. Один из самых действенных способов.

Да, именно так и сделал, но остается возможность использования н-ного количества прокси-серверов. С этим как бороться?

[Удален]
#7
bearman:
So1, и я и с достаточно уникальной разметкой парсил данные + подмешенные теги ненужные которые через ксс прятались. работы всего то на 15 минут больше и не более, от персеров невозможно защититься, я могу предположить одну идею как это сделать, но это может отсеять и часть клиентов :)

Не... я о самой структуре страницы.... например я парсю статьи.... На одной странице разметка табличная, на второй блочная... на одной статья заключена в 5 колонке, 3 строчке таблицы, на третей в теге <p> с идентификатором id="abyrvalg", на четвертой во 2 столбце, 3 строке в блоке SPAN и тому подобные изощрения... Вот тогда да. Тогда придется обратным методом действовать - искать не статью, а отбрасывать лишнее (например, я точно знаю как строится меню на сайте - его выкидываю, сайдбары, футеры и т.д.), пока не получу статью... То есть, все равно можно, но сложнее уже будет гораздо :) Но я бы посмотрел на такого извращенца, который к каждой странице будет делать уникальную верстку с подобными изощрениями :)))

ТС, прийдется Вам просто смириться с тем что в любом случае защитеться от парсеров не удастся... Я не думаю, что гугл в восторге, например, что youtube парсят все, кому не лень...

А так-то понятно, что очистить текст от тегов - раз плюнуть... Классов готовых тьма, да и самому написать purifier плевое дело...

Да, именно так и сделал, но остается возможность использования н-ного количества прокси-серверов. С этим как бороться?

При чем тут прокси? ну ладно... так и быть... У Вас есть ник... При помощи этого никак кто то хочет войти в систему 5 раз подряд с не правильным паролем... После 5й попытки блокируем этот ник... то есть

если (ник использовал 5 попыток) 
говорим, что нельзя так делать и лочим на 15 минут

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

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

crazy fox
На сайте с 12.01.2007
Offline
73
#8
So1:
При чем тут прокси? ну ладно... так и быть... У Вас есть ник... При помощи этого никак кто то хочет войти в систему 5 раз подряд с не правильным паролем... После 5й попытки блокируем этот ник... то есть
если (ник использовал 5 попыток) 

говорим, что нельзя так делать и лочим на 15 минут

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

Я поставил блокировку по IP: 5 неверных логинов или паролей и IP блокируется на 1 час. Хотел сделать блокировку пользователя (логина), но не стал, так как в этом случае кто-то может намеренно блокировать чужие аккаунты. А вот про совместное использование не думал. Причем сначала банить по IP, а уже потом по логину.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий