Sign in to follow this  
Followers 0
sfg1503

Блокировка переходов на сайт по IP, Referer и User-Agent

21 posts in this topic

Всем доброго утра!

 

Буквально несколько слов предистории: в 2011 создал каталог и рейтинг сайтов похожий на все обычные... со счётчиком, который устанавливался в html код. Но это не давало всех тех возможностей, которые мне понадобились в этом году!

 

Теперь к делу! Имеется несколько сайтов с хорошей посещаемостью, соответственно у поисковиков и не только у них появляется интерес к ним. И каждый из них начинает заходить и просматривать сайт вне зависимости просил я его или нет. В итоге от некоторых просто нет никакого толку, результат нагрузка на сервер.

 

Запрет доступа через robots.txt помогает, но не всегда. Решил сделать статистику чем-то похожую на AWStats, только для любого сайта в реальном времени и чтобы места на ваших сайтах не занимала и была независима от сайта статистики. Возможно, вы замечали при установке счетчика от какого-то рейтинга, если сайт этого самого счетчика недоступен, то и на вашем сайте элементы страницы подгружаются с задержкой.

 

Да, может кому-то это и не понравится, но счётчик нужно встроить в саму CMS (инструкция будет при добавлении сайта). Но данную статистику я реализовал именно так. По защите: код файлов, который будет размещаться у вас на сайте, написан таким образом, что при попытке изменить или получить доступ к файлам будет сразу же блокироваться при первой же попытке и без возможности снятия этих ограничений (на работу сайта это не влияет).

 

Суть сбора статистики. Все обращения будут сохраняться у вас на сайте, наш скрипт в запланированное время (каждую минуту) будет эту статистику забирать и очищать (сайт и наш скрипт независимы друг от друга, тоесть ваш сайт живет своей жизнью, а наш своей).

 

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

  • переходы посетителей с: доменов, страниц, IP;
  • просмотренные страницы: посетителями, роботами;
  • по роботам: список роботов, выявление роботов, история посещений и User-Agent и IP каждого из них;
  • % отказов;
  • доступность сайта (Uptime) с возможностью просмотреть какие ошибки выдал ваш сайт.

И самое главное! Это возможность запрета доступа к сайту по IP, Referer и User-Agent без обращения к .htaccess. Вам не придется ломать голову как заблокировать тот же рефспам, который на сейчас частенько достаёт многие сайты.

 

Оставляйте комментарии, задавайте вопросы, постараюсь на них ответить!

 

Собственно сам сайт: http://gigabase.com.ua/

Share this post


Link to post
Share on other sites

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

Zalm likes this

Share this post


Link to post
Share on other sites

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

С вашей стороны это не обоснованный ответ. Устанавливаете код для сбора статистики. Анализируете и блокируете тех кто не нужен, нажав на ссылку "заблокировать". Весь метод автоматизирован программно.

 

Скриншот по истории посещений роботов:

c5e9ef8f177b.jpg

Share this post


Link to post
Share on other sites

Возможно сервис не плохой, но... Захожу я на ваш сайт и вижу привет из 2000-х в стиле сайтов Narod.ru. И всё, никакой функционал не остановит меня закрыть страницу. Встречают то по одёжке. Есть же легкие и стильные фреймворки, хотя бы этот - materializecss.com. 

campusboy and sfg1503 like this

Share this post


Link to post
Share on other sites

Возможно сервис не плохой, но... Захожу я на ваш сайт и вижу привет из 2000-х в стиле сайтов Narod.ru. И всё, никакой функционал не остановит меня закрыть страницу. Встречают то по одёжке. Есть же полно легких и стильных фреймворков, хотя бы этот - materializecss.com. 

Согласен, я не дизайнер, потому вид остался тот, который был при создании. Станет ресурс востребован, с удовольствием приведу к лучшему виду!

Share this post


Link to post
Share on other sites

Почему у Вас на сайте статистика от hit.ua стоит ? не вижу вашу статистику.

Share this post


Link to post
Share on other sites

Вы имеете введу код моей статистики на сайте? Она стоит, как я писал выше, она встраивается в код CMS (в php скрипт) - в html она не отображается.

Share this post


Link to post
Share on other sites

Вы имеете введу код моей статистики на сайте? Она стоит, как я писал выше, она встраивается в код CMS (в php скрипт) - в html она не отображается.

А как Вы тогда полноценную статистику собираете ? .

 

  • Поведенческие факторы
  • время провождения пользователя на сайте
  • карта скролинга
  • карта кликов
  • и т.д.

 

Или Вся Ваша система только для блокировки ненужных роботов ?

Share this post


Link to post
Share on other sites

А как Вы тогда полноценную статистику собираете ? .

 

  • Поведенческие факторы
  • время провождения пользователя на сайте
  • карта скролинга
  • карта кликов
  • и т.д.

 

Или Вся Ваша система только для блокировки ненужных роботов ?

Да, в основном сбор статистики для отлова роботов и тех кто парсят сайт.

В планах позже заменить дизайн сайта и добавить разделы:

  • посетители по странам
  • время провождения пользователя на сайте
  • достигнутые цели

Share this post


Link to post
Share on other sites

 

Да, в основном сбор статистики для отлова роботов и тех кто парсят сайт.

В планах позже заменить дизайн сайта и добавить разделы:

  • посетители по странам
  • время провождения пользователя на сайте
  • достигнутые цели

 

А я PHP плохо знаком, но насколько знаю, если не будет хотя бы 2х сессий посетителя, отловить время провождения невозможно будет или возможно?

Share this post


Link to post
Share on other sites

А я PHP плохо знаком, но насколько знаю, если не будет хотя бы 2х сессий посетителя, отловить время провождения невозможно будет или возможно?

Нужно смотреть в сторону json. Вот пример, у меня на сайте стоит встроенная в движок аналитика и она оставляет такие логи:

 

 

141.101.105.185 - - [04/Aug/2015:09:57:32 +0300] "POST /index.php?option=com_jrealtimeanalytics&format=json HTTP/1.0" 200 710 "/17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"

162.158.89.165 - - [04/Aug/2015:09:57:37 +0300] "GET /17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge HTTP/1.0" 200 12672 "-" "-"
141.101.105.185 - - [04/Aug/2015:09:57:37 +0300] "POST /index.php?option=com_jrealtimeanalytics&format=json HTTP/1.0" 200 710 "/17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"
162.158.89.165 - - [04/Aug/2015:09:57:42 +0300] "GET /17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge HTTP/1.0" 200 12640 "-" "-"
141.101.105.185 - - [04/Aug/2015:09:57:42 +0300] "POST /index.php?option=com_jrealtimeanalytics&format=json HTTP/1.0" 200 710 "/17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"
162.158.89.165 - - [04/Aug/2015:09:57:47 +0300] "GET /17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge HTTP/1.0" 200 12633 "-" "-"

141.101.105.185 - - [04/Aug/2015:09:57:47 +0300] "POST /index.php?option=com_jrealtimeanalytics&format=json HTTP/1.0" 200 710 "/17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"

 

 

Соответственно пока страница открыта - скрипт будет получать об этом информацию.

Share this post


Link to post
Share on other sites

А я PHP плохо знаком, но насколько знаю, если не будет хотя бы 2х сессий посетителя, отловить время провождения невозможно будет или возможно?

Все верно, на php нужно 2 и более сессий. DevilStar написал вариант решения этой задачи.

Share this post


Link to post
Share on other sites

Нужно смотреть в сторону json. Вот пример, у меня на сайте стоит встроенная в движок аналитика и она оставляет такие логи:

 

 

141.101.105.185 - - [04/Aug/2015:09:57:32 +0300] "POST /index.php?option=com_jrealtimeanalytics&format=json HTTP/1.0" 200 710 "/17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"

162.158.89.165 - - [04/Aug/2015:09:57:37 +0300] "GET /17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge HTTP/1.0" 200 12672 "-" "-"
141.101.105.185 - - [04/Aug/2015:09:57:37 +0300] "POST /index.php?option=com_jrealtimeanalytics&format=json HTTP/1.0" 200 710 "/17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"
162.158.89.165 - - [04/Aug/2015:09:57:42 +0300] "GET /17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge HTTP/1.0" 200 12640 "-" "-"
141.101.105.185 - - [04/Aug/2015:09:57:42 +0300] "POST /index.php?option=com_jrealtimeanalytics&format=json HTTP/1.0" 200 710 "/17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"
162.158.89.165 - - [04/Aug/2015:09:57:47 +0300] "GET /17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge HTTP/1.0" 200 12633 "-" "-"

141.101.105.185 - - [04/Aug/2015:09:57:47 +0300] "POST /index.php?option=com_jrealtimeanalytics&format=json HTTP/1.0" 200 710 "/17-vebmasteru/82-optimiziruem-sajt-pod-microsoft-edge" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"

 

 

Соответственно пока страница открыта - скрипт будет получать об этом информацию.

 

Все верно, на php нужно 2 и более сессий. DevilStar написал вариант решения этой задачи.

Это уже не чистый PHP, а связка с аякс и js и так не интересно )), тут даже json лишний в принципе), ладно пропустим... (если чисто на PHP, можно использовать фреймы и meta refresh  :lol: )

 

 

Чтобы не грузить сервера не грузить клиентскую часть, как я понял, Вы именно из-за этого с JS перешли на PHP (интеграцию в CMS). Каким образом PHP скрипт отправляет на сервер статистику? В режиме реального времени все это работает ? или как-то по крону ?

 

Следующий вопрос, с какими CMS есть возможность интеграции ? Open Cart, DLE, Joomla, MODx, WP, IPB, xenforo, самопис и прочие движки с сложным ООП, Вы учитывали возможность интеграции скрипта в подобные системы (внедрение в код) и то что делаться это будет простыми пользователями?

Share this post


Link to post
Share on other sites

Это уже не чистый PHP, а связка с аякс и js и так не интересно )), тут даже json лишний в принципе), ладно пропустим... (если чисто на PHP, можно использовать фреймы и meta refresh  :lol: )

 

 

Чтобы не грузить сервера не грузить клиентскую часть, как я понял, Вы именно из-за этого с JS перешли на PHP (интеграцию в CMS). Каким образом PHP скрипт отправляет на сервер статистику? В режиме реального времени все это работает ? или как-то по крону ?

 

Следующий вопрос, с какими CMS есть возможность интеграции ? Open Cart, DLE, Joomla, MODx, WP, IPB, xenforo, самопис и прочие движки с сложным ООП, Вы учитывали возможность интеграции скрипта в подобные системы (внедрение в код) и то что делаться это будет простыми пользователями?

Сбор статистики идет по крону. У вас данные записываются в файл, по крону наш скрипт заходит забирает статистику и очищает файл.

Работает со всеми CMS, которые используют PHP. Инструкция по установке кода будет после добавления сайта в каталог.

 

Обычно все CMS используют один общий файл index.php (WP, Joomla и т.д.), вот в него и добавляется код. Для самописных уже нужно смотреть индивидуально, но если и в ней также используется для всех запросов один файл, то принцип установки кода тот же. Если каждая страница - отдельный php-файл, то код нужно добавить в каждый из них.

rafonets likes this

Share this post


Link to post
Share on other sites

Сбор статистики идет по крону. У вас данные записываются в файл, по крону наш скрипт заходит забирает статистику и очищает файл.

Работает со всеми CMS, которые используют PHP. Инструкция по установке кода будет после добавления сайта в каталог.

 

Обычно все CMS используют один общий файл index.php (WP, Joomla и т.д.), вот в него и добавляется код. Для самописных уже нужно смотреть индивидуально, но если и в ней также используется для всех запросов один файл, то принцип установки кода тот же. Если каждая страница - отдельный php-файл, то код нужно добавить в каждый из них.

Спасибо))))))

Share this post


Link to post
Share on other sites

С вашей стороны это не обоснованный ответ. Устанавливаете код для сбора статистики. Анализируете и блокируете тех кто не нужен, нажав на ссылку "заблокировать". Весь метод автоматизирован программно.

 Чем необоснова мой ответ? Название темы, как минимум, не полноценно соответствует содержимому. Читая название темы я подумал речь идет о каком-то способе блокировки пользователя по IP, referer и User-agent. А по факту вижу мини презнтацию(рекламу) сервиса, по блокировке ботов ПС.

 Было бы более разумно назвать тему на подобии: "Рейтинг сайтов с функцией блокировки ботов по IP, referer и User-agent.". Это более точно отражало бы содержимое темы.

 О качестве сервиса и его работе я ничего не говорил. Так что повода обижатся на мой коммент не вижу.

 

Я так понимаю речь идет только о блокировке ботов? Заблокировать какого-нить одиночного психа, который чудит на сайте, я не смогу?

Share this post


Link to post
Share on other sites

Заблокированные IP, Referer и User-Agent хранятся тоже у Вас?

Да, вся статистика и список заблокированных IP, Referer и User-Agent хранятся у нас и у вас на сайте в отдельном файле. Тоесть, если робот заходит, то скрипт на вашем сайте проверит, можно ли его пропустить на сайт в соответствии со списком в файле, к нашему сайту никаких обращений скрипт не делает.

Share this post


Link to post
Share on other sites

 Чем необоснова мой ответ? Название темы, как минимум, не полноценно соответствует содержимому. Читая название темы я подумал речь идет о каком-то способе блокировки пользователя по IP, referer и User-agent. А по факту вижу мини презнтацию(рекламу) сервиса, по блокировке ботов ПС.

 Было бы более разумно назвать тему на подобии: "Рейтинг сайтов с функцией блокировки ботов по IP, referer и User-agent.". Это более точно отражало бы содержимое темы.

 О качестве сервиса и его работе я ничего не говорил. Так что повода обижатся на мой коммент не вижу.

 

Я так понимаю речь идет только о блокировке ботов? Заблокировать какого-нить одиночного психа, который чудит на сайте, я не смогу?

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

 

 

Доступные ручные способы блокировки: запрет этих же "IP, referer и User-agent" через .htaccess, в настройках nginx и т.д. О каждом методе можно найти информацию в инете.

 

Речь идет не только о блокировке известных роботов, но как вы и пишите "одиночного психа" по IP или каких-то ненужных переходов с иных доменов (рефспам).

 

Например, я у себя обнаружил множество запросов с отдельных IP, которые были каждый день в одно и тоже время по несколько тысяч раз.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Как, кто или что у вас блокирует сайт?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.