Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> блокировка конкретного компьютера 
V
    Опции темы
koyot
Дата 29.1.2008, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



Помогите - горю!!! smile 
Мне нужно закрыть доступ конкретного клиентского компьютера к моему сайту или, если не закрыть полный доступ, то хотя бы ограничить его возможности(не дать возможность зарегистрироваться и т.д.). Блокировка по IP не подходит. какими способами это можно реализовать?
PM MAIL   Вверх
Golda
Дата 29.1.2008, 02:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



Опишите проблему подробнее. Что именно делают с этого конкретного компьютера и в какой ситуации? Проблема в поведении пользователя-человека или бота? Что происходит: попытка DOS-атаки, спам через  Вашу форму, захват управления через дыру типа SQL-инъекции... ? В зависимости от этого защита будет разной. Опишите СВОЮ КОНКРЕТНУЮ проблему. Поскольку общего решения не существует. Достоверно пользователя идентифицировать нельзя

В общем случае идентифицировать пользователя можно двумя путями: 
  • анализ конкретного запроса. Тут Вам доступны IP, HTTP-заголовки запроса, в частности, куки и GET и  POST параметры запроса
  • анализ поведения пользователя по истории его запросов в рамках одной сессии. Причем сессия может быть отслежена либо по сессионной переменной (в COOKIES, GET или POST), либо по одинаковому IP, либо по общему набору заголовков

HTTP-заголовки легко подделываются, например, тем же скриптом на PHP. IP на уровне HTTP-протокола подделать нельзя, но можно подменить, используя прокси. Все же на протяжении некоторого промежутка времени обычно IP сохраняется, количество доступных IP не безгранично. Заголовки хоть и могут быть указаны произвольные, но для данного пользователя в них можно проследить закономерность. Кстати, отсутствие какого-то заголовка из тех, на которые Вы хотели рассчитывать - тоже информация.

HTTP_REFERER неожиданный или отсутствует в ситуации, где не должен - информация.
USER_AGENT из блек-листов, отсутствует или меняется при одном и том же идентификаторе сессиии или IP - информация. Правда, с IP тут нужно быть осторожнее, возможны и легальные случаи. Возьмите на заметку и анализируйте дальше.
В форме есть кнопка <input type='image'/> и Вы видите несколько запросов с одинаковой точкой нажатия - информация
Запросы с похожим набором заголовков через равные или очень быстрые промежутки времени - информация
Запросы с повторяющимися парамметрами - информация
Запросы с явным поиском распространенных уязвимостей в параметрах - информация
И т.д.

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

Вообще, вернусь к началу. Опишите проблему. Может, в Вашем случае защита должна состоять в том, чтобы сделать использование ресурса неэффективным, неинтересным для злонамеренного пользователя. Может, где-то добавить барьер в виде дополнительного этапа верификации пользователя. Смотреть нужно



--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
koyot
Дата 29.1.2008, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



Golda, вот суть проблемы: у меня на сайте пользователь регистрируется и занимается спамом. У меня есть, так называемый, "чёрный список", куда заносятся подобные товарищи. IP адрес у него динамический. Я бы без вопросов заблокировал всю подсеть, но тут вновь засада - он научился пользоваться прокси. тут я и зашёл в тупик. 
PM MAIL   Вверх
MoLeX
Дата 29.1.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



koyot в какойто теме я приводил пример. ИМХО: узнать как можно больше об компьютере пользователя и если он злодей то эти индификаторы в бан и баста


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
GeneralElectric
Дата 29.1.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



Надо разбираться с конкретным случаем. 

Все так же - поиски способа не прекратить спам, а заблокировать клиентский компьютер. 


 ! 
PARROT
Прекратите ругаться, хотите отвечайте, нет, проходите мимо. Флейм удален. В след. раз будет предупреждение.

PM MAIL   Вверх
koyot
Дата 29.1.2008, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



GeneralElectric, вот по этому поводу я и прошу помощи. Просто не знаю, какой ещё способ придумать.
может, возможно как-нибудь определить МАС адрес карты или ID материнки?

Это сообщение отредактировал(а) koyot - 29.1.2008, 23:51
PM MAIL   Вверх
Golda
Дата 30.1.2008, 01:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



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

Если есть четкие особенности поведения, можете по ним отсекать запросы. Используется бот или работает человек? Может, полуавтомат? На что больше похоже? Если бот,  может просто добавите какой-нибудь этап типа CAPTCHA?


Цитата(koyot @  29.1.2008,  20:28 Найти цитируемый пост)
может, возможно как-нибудь определить МАС адрес карты или ID материнки?


Средствами чистого php - невозможно.  Разве что MAC адрес машины из локальной сети. PHP на сервере работает. А данные нужны - клиента. Причем такие, к которым javascript доступа не имеет. Разве что у пользователя кстати окажется установлен какой-нибудь ActiveX, получающий такую информацию. Тогда javascript к нему доступ получит. Но это уже из области вирусов.

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

Анализируйте заголовки запроса. Что общего между двумя запросами? Что отличается? Какой поднабор заголовков используется...?


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
sTa1kEr
Дата 30.1.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(koyot @  29.1.2008,  11:46 Найти цитируемый пост)
Я бы без вопросов заблокировал всю подсеть, но тут вновь засада - он научился пользоваться прокси. тут я и зашёл в тупик.  

Если вкратце, то минимум, который можно сделать, что бы обнаружить таких спамеров
  • Определить используется ли прокси сервер по соответствующим заголовкам. 
  • Попытаться определить настоящий IP пользователя. Этот вопрос неплохо был расписан в теме Получение IP адреса
  • Если IP определить не удалось, либо этот IP не забанен, то проверить не занесен ли этот Proxy в DNS Black List. Как это сделать я писал тут, а так же есть куча примеров в комментах описания функции gethostbyname().
  • Соответственно, если проксик занесен в DNSBL, то сказать пользователю, что его прокси в черном списке, либо просто сказать, что такой IP забанен.
Большинство пользователей используют именно публичные прокси, т.к. их просто достать и они бесплатные, но, к счастью, по этой же причине их так же просто занести в блек лист, поэтому такая проверка отсеит львиную долю (я думаю процентов 95...) всех любителей скрывать свой IP. Для большей надежности можно даже проверять все IP, даже те, для которых не удалось определить используется ли прокси сервер (только в этом случае нужно обязательно убедится, что DNS запросы кэшируются на хостинге/у провайдера, либо реализовать кэширование самому).

Конечно-же в этой схеме может случится, что под фильтр попадет обычный пользователь, но вероятность этого очень мала, т.к. ни один разумный пользователь не будет сидеть в интернете через тормазнутые публичные проксики (за исключением как-раз тех случаев, когда необходимо скрыть IP).

Это конечно не панацея, т.к. бывают еще платные проксики (не путать с платными прокси-листами - это просто список публичных прокси за деньги) и прокси-трояны. Но если при помощи первых вряд-ли кто-то реально будет скрывать свой IP (т.к. это очень накладно выйдет), то со вторыми крайне тяжело бороться. Но я думаю, что в вашем случае спамер вряд-ли использует прокси-трояны smile
PM MAIL   Вверх
GeneralElectric
Дата 30.1.2008, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



Я считаю, что работа с контентом гораздо перспективнее шаманства с IP адресами.
Только вот упорное нежелание автора привести пример "хулиганства" наводит на определенные размышления...
PM MAIL   Вверх
koyot
Дата 31.1.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



Цитата(GeneralElectric @ 30.1.2008,  19:24)
Я считаю, что работа с контентом гораздо перспективнее шаманства с IP адресами.
Только вот упорное нежелание автора привести пример "хулиганства" наводит на определенные размышления...

Человек постоянно регистрируется на сайте (в день может доходить до 10-15 регистраций) и отправляет пользователям всякий бред, как правило, это реклама какой-то услуги или продукта.
Его настоящий IP известен, теперь он начал пользоваться бесплатными прокси.
Теперь, думаю, суть проблемы ясна.
PM MAIL   Вверх
sTa1kEr
Дата 31.1.2008, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(koyot @  31.1.2008,  15:22 Найти цитируемый пост)
Его настоящий IP известен, теперь он начал пользоваться бесплатными прокси.

koyot, не ужели так сложно пройтись по ссылкам что я привел?
Код

function isBlackProxy($ip)
{
   $rIp = implode(".", array_reverse(explode('.', $ip)));
   $host = gethostbyname($rIp.".xbl.spamhaus.org");
   return !($ip == $host);
}

if (isBlackProxy($_SERVER["REMOTE_ADDR"]))
{
   echo <<< EOS
<h1>Ваш IP адрес занесен в черный список.</h1>
IP адрес <b>{$_SERVER["REMOTE_ADDR"]}</b> был занесен в черный список, это могло случится по следующим причинам:
<ul>
   <li>У вас установлен или вы используете публичный прокси-сервер</li>
   <li>С вашего IP адреса происходила массовая рассылка спама</li>
   <li>Ваш компьютер заражен вирусом</li>
</ul>
Если вы считаете, что ваш IP адрес был занесен в черный список по ошибке, то свяжитесь с нами по адресу support@forum, сообщите ваш e-mail и IP адрес и мы попытаемся решить эту проблему.
EOS;
   exit();
}

Все. Скорее всего даже этого будет достаточно, что бы избавится от вашего спамера.

Это сообщение отредактировал(а) sTa1kEr - 31.1.2008, 18:13
PM MAIL   Вверх
koyot
Дата 31.1.2008, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



sTa1kEr,  это я описал проблему по просьбе GeneralElectric'a
По твоим ссылкам я прошёл и узнал кое-что новое для себя, за что я тебе благодарен
PM MAIL   Вверх
GeneralElectric
Дата 1.2.2008, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



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

Как правильно объясняла Golda, методов может быть множество. А не один IP адрес на все случаи жизни.
но какой-то метод можно применить или посоветовать только если видеть конкретный спам, конкретные заголовки. Об этом шла речь, и именно это имело смысл приводить - реальные примеры, а не общие слова.
PM MAIL   Вверх
FractalizeR
Дата 1.2.2008, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 27.12.2007
Где: Россия/Москва

Репутация: 2
Всего: 4



Есть способы борьбы со спамом и помимо блокировки IP. Например, система akismet, которую пользует WordPress. http://akismet.com/

Интерфейс для проверки постов пользователя через akismet можно вытащить из Zend Framework.


--------------------
Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя.
PM MAIL   Вверх
sTa1kEr
Дата 1.2.2008, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Цитата(koyot @  31.1.2008,  23:14 Найти цитируемый пост)
По твоим ссылкам я прошёл и узнал кое-что новое для себя

Так самое главное-то вы не сказали. Сработал такой метод или нет? Если да, то замечательно, можно считать способ проверенным в боевых условиях (т.к. сам я проверял его только на, рандомно выбранных, проксиках). Если нет, то нужно дальше копать. Топик-то может быть полезным и другим пользователям.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.