Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Как запретить на форуме Tor

Опубликовано:

Добрый день!

 

Собственно, как запретить юзерам заходить на форум с Тора. Кто не занет что такое Тор, - http://torproject.org ?

Рекомендованные сообщения

Опубликовано:

Собственно, основная задача в том, чтобы определить использование tor-а. В гугле предлагают несколько вариантов основанных на проверке ип адреса по спам базам, либо на проверке ип адреса полученного по имени хоста. Возможно если поискать, найдутся спец базы куда заносятся именно ип нодов тора. Второй вариант, говорят тоже нормально детектит. А остальное уже дело техники, опередили и забанили или ограничили доступ к форуму.

Опубликовано:

Это надо делать не на уровне форума, а ниже - парсим логи веб-сервера, выделяем оттуда IP tor exit node и в iptables их. Или превентивно, получать с некоторых сервисок список таких IP и в iptables в ipset их засовывать для блокировки.

Опубликовано:
Это надо делать не на уровне форума, а ниже - парсим логи веб-сервера

Человек зашел в первый раз с тора, получил рэндомный айпи, это когда в следующий раз будут парсятся логи чтобы запретить ему доступ? Я так понимаю основная идея для ТСа запретить доступ в текущем времени, а не когда -нибудь в будующем.

Да и на шаред хостингах с этим могут возникнуть проблемы.

 

выделяем оттуда IP tor exit node

Это таким образом тор представляется, или как выделить эти самые exit node из логов?

Опубликовано:

5-10 минут в поиске выдали мне и серверы, выдающие списких выходных нод, и даже готовые скрипты. Я это к тому, что блокировать надо до форума и даже до веб-сервера.

Опубликовано:

Ну почему так радикально, вполне успешно это можно сделать и на уровне форума. Загнать несколько сотен айпишников в базу и сделать один запрос это не так страшно. А можно сделать только при регистрации или авторизации.

Да, конечно, по быстродействии лучше закрыть на уровне фаервола, но если нет такой возможности, вполне можно обойтись и уровнем скрипта. Речь все же не о ддос атаке.

Опубликовано:

Не уверен, что их там всего несколько сотен. Да и без скриптов никак. Нет в форуме встроенных удобных возможностей для этого. Даже списком задать IP для бана нельзя. Значит надо изобретать скрипт для заполнения таблицы банов. Проверка только при регистрации не выход. Можно будет зарегиться через открытый прокси, а спамить потом через Tor. Для проверки IP при регистрации есть как минимум два мода, их можно доработать для проверки и по списку нод тора.

 

Автор, а забанить все открытые прокси невозможно, что с этим делать намерены? А ещё VPN-сервисы есть.

Опубликовано:
Значит надо изобретать скрипт для заполнения таблицы банов.

Таблицу лучше создать отдельную если адресов много, таблица бана грузится целиком при каждом запросе. А там уже можно хоть и 10k адресов загнать.

Опубликовано:

Чисто ради спортивного интереса. :)

 

В базе 947 айпишников

Структура таблицы

 

CREATE TABLE `ip` (
 `id` mediumint(5) unsigned NOT NULL AUTO_INCREMENT,
 `ip` int(10) unsigned NOT NULL DEFAULT '0',
 PRIMARY KEY (`id`),
 KEY `ip_index` (`ip`)
) ENGINE=InnoDB AUTO_INCREMENT=948 DEFAULT CHARSET=cp1251

 

Профилинг запроса без использования индекса ip_index

 

+----------+------------+-------------------------------------------------------------------------+
| Query_ID | Duration   | Query                                                                   |
+----------+------------+-------------------------------------------------------------------------+
|        5 | 0.00126175 | SELECT SQL_NO_CACHE * FROM ip WHERE ip = INET_ATON('1.0.3.100') LIMIT 1 |
|        6 | 0.00119925 | SELECT SQL_NO_CACHE * FROM ip WHERE ip = INET_ATON('1.0.3.100') LIMIT 1 |
|        7 | 0.00119325 | SELECT SQL_NO_CACHE * FROM ip WHERE ip = INET_ATON('1.0.3.100') LIMIT 1 |
+----------+------------+-------------------------------------------------------------------------+

 

С индексом

 

+----------+------------+-------------------------------------------------------------------------+
| Query_ID | Duration   | Query                                                                   |
+----------+------------+-------------------------------------------------------------------------+
|        8 | 0.00070675 | SELECT SQL_NO_CACHE * FROM ip WHERE ip = INET_ATON('1.0.3.100') LIMIT 1 |
|        9 | 0.00054175 | SELECT SQL_NO_CACHE * FROM ip WHERE ip = INET_ATON('1.0.3.100') LIMIT 1 |
|       10 | 0.00063200 | SELECT SQL_NO_CACHE * FROM ip WHERE ip = INET_ATON('1.0.3.100') LIMIT 1 |
+----------+------------+-------------------------------------------------------------------------+

Опубликовано:

@siv1987, представь, что тебя DDos'ят простыми GET-запросами через Tor или открытые прокси. Неужели на уровне форума будешь защищаться? Или на уровне web-сервера?

 

Ты измеряешь 1 простой запрос напрямую в БД, а коннект нежелательного пользователя к web-серверу, а запуск PHP, а выполнение других запросов в базу для отображения страницы? А если таких нежелательных запросов к странице сотни? Да их лучше зарубить ещё до web-сервера, чтобы они не расходовали ресурсы.

Опубликовано:

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

Опубликовано:

Ладно, что-то мы ушли в сторону. Я на шареде сижу пока, SFS банит спамеров, потом вношу их IP в .htaccess И таблица бана по IP чиста и логи ошибок чисты и новых попыток регистрации ботов с этих IP больше не будет. Мне хватает.

Опубликовано:

Напиши для автора мод, который будет по расписанию получать список выходных нод, вносить их в БД и при активности пользователя на форуме хотя бы показывать, что его IP из тора.

Опубликовано:
Ты измеряешь 1 простой запрос напрямую в БД, а коннект нежелательного пользователя к web-серверу, а запуск PHP, а выполнение других запросов в базу для отображения страницы?

 

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

 

Я на шареде сижу пока, SFS банит спамеров, потом вношу их IP в .htaccess

Имхо, по моему это перебор для спамеров. Мне хватает проверки при регистрации и внесения ип в бан на три дня. Логи даже не смотрю. :)

Опубликовано:

Логи даже не смотрю. :)

 

Ты не смотришь, а они растут прилично. Один тупой бот после внесения его в таблицу банов может 6 страниц логов за один раз наплодить. Да и зачем давать им возможность через 3 дня снова с этого IP пытаться региться?

Опубликовано:
  • Автор

Спасибо за полезную дискуссию! Я так понял, можно внести весь список айпишников Тора в спам-лист и готово, как самый простой вариант. Или на уровне сервера в .htaccess. Кстати, не подскажите структуру файла .htaccess в вашем случае, как вы это реализуете?

 

И еще я думал, может быть Тор как-то себя палит и его можно было бы вычислять по неким следам, и автоматом ограничивать доступ пользователям, юзающим Тор?!

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.