AntiBot.Cloud - антибот защита для сайтов - Форум успешных вебмастеров - GoFuckBiz.com - Страница 2
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.4409
BTC/USD68719.3533
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Ответ
Опции темы Опции просмотра
Старый 22.08.2019, 11:57
Start Post: AntiBot.Cloud - антибот защита для сайтов 
  #11
tdsse cms
Senior Member
 
Регистрация: 09.06.2010
Сообщений: 243
Бабло: $34435
По умолчанию

Бесплатный скрипт, а также облачный сервис для защиты сайтов на php от плохих ботов. Скрипт полезен для большинства сайтов - как для белых сайтов, так и для дорвеев, заметно снижает нагрузку на сервер и защищает от парсинга. Подробности на сайте https://antibot.cloud/?gfb
tdsse cms вне форума   Ответить с цитированием
Старый 22.08.2019, 19:08   #12
tdsse cms
Senior Member
 
Регистрация: 09.06.2010
Сообщений: 243
Бабло: $34435
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от Camembert Посмотреть сообщение
Уже лежит
да, но это не ддос на меня (немножечко радует), в датацентре проблема. Лежит главный сервер и один субдомен, второй субдомен работает и фильтрует ботов в штатном режиме.
tdsse cms вне форума   Ответить с цитированием
Старый 22.08.2019, 21:07   #13
Lord_Alfred
Хитрожопый
 
Аватар для Lord_Alfred
 
Регистрация: 15.07.2008
Сообщений: 599
Бабло: $93800
По умолчанию

я тут не при чём
__________________
Мой блог в Telegram: https://tglink.ru/Lord_Alfred
Тесты производительности VPS: https://tglink.ru/VPSBench - присылайте с рефкой
Lord_Alfred вне форума   Ответить с цитированием
Старый 22.08.2019, 21:36   #14
tdsse cms
Senior Member
 
Регистрация: 09.06.2010
Сообщений: 243
Бабло: $34435
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от Lord_Alfred Посмотреть сообщение
я тут не при чём
Да у хостера упало как минимум 3 вдс, 1 из которых в связях с антиботом засвечен небыл
tdsse cms вне форума   Ответить с цитированием
Старый 28.08.2019, 23:41   #15
Lord_Alfred
Хитрожопый
 
Аватар для Lord_Alfred
 
Регистрация: 15.07.2008
Сообщений: 599
Бабло: $93800
По умолчанию



Говнокод в каждой третьей строке!!!
__________________
Мой блог в Telegram: https://tglink.ru/Lord_Alfred
Тесты производительности VPS: https://tglink.ru/VPSBench - присылайте с рефкой
Lord_Alfred вне форума   Ответить с цитированием
Старый 29.08.2019, 08:13   #16
tdsse cms
Senior Member
 
Регистрация: 09.06.2010
Сообщений: 243
Бабло: $34435
ТС -->
автор темы ТС По умолчанию

Lord_Alfred, приведи пример как это должно быть по "правильному" иначе это будет балабольство ))
P.S. а вообще не бывает говнокода, бывает говнопрогер, не понимающий чужого кода, а код может быть только в 2 состояниях:
1) работает, поставленную задачу выполняет.
2) не работает и не выполняет поставленную задачу.
tdsse cms вне форума   Ответить с цитированием
Старый 29.08.2019, 11:39   #17
Lord_Alfred
Хитрожопый
 
Аватар для Lord_Alfred
 
Регистрация: 15.07.2008
Сообщений: 599
Бабло: $93800
По умолчанию

Ну вот в данном случае ты определенно подходишь под свое же понятие "говнопрогер"

Ну давай начнем, я люблю разъёбывать зазнавшихся, да и тебе полезно будет - может рефакторинг сделаешь


0. Твой стиль форматирования кода, а точнее его полное отсутствие - знакомо мне ещё с недодоргена, который я имел неосторожность купить.
Если ты будешь отмахиваться, что убираешь форматирование только перед тем как выкладываешь - то ты явно не уважаешь тех,
кто у тебя покупает/качает скрипты. Обфусцируй нахуй тогда вообще всё и засунь под ионкуб )
Ну а лучше почитай хотя бы PSR-2.

1.
Код:
$ptr = gethostbyaddr($ip); // получаем ptr хост по ip
$ip2 = gethostbynamel($ptr); // массив ip принадлежащих хосту
На каждый ебаный запрос - ты дёргаешь DNS, а это значит что при нагрузке они усрут весь канал в хлам,
тем более что ответы от DNS-серверов зачастую не такие быстрые как хотелось бы (если не юзать кастомные DNS сервера вроде гугловых или cf, но кто ж это настраивает на серваке?!).
Кешировать надо это говно или хотя бы named иметь правильно настроенный.

2.
Код:
$test_ptr = 0;
Можно задать булевый тип и не нужно будет потом извращаться с условиями аля "$test_ptr == 1" - ты
очень любишь зачем-то такие сравнение везде по коду херачить. Как будто для тебя получение булевой true/false - недостаточно)

3.
Код:
stripos($ptr, $ptr_line, 0)
Последний аргумент необязательный и по дефолту и так равен 0.
И самое смешное и важное: если я себе задам PTR запись у IP адреса вида: "123.123.123.123.googlebot.com.my-domain.com" и
зайду под юзерагентом, содержащим "Googlebot", то у твоя клоака пропустит меня и не сработает)) Отличный вариант для того, чтоб устроить DDoS конкуренту)

4.
Код:
if (in_array($ip, $ip2) AND $test_ptr == 1) {return 1;} else {return 0;}
Зачем городить такие условия, чтоб вернуть единицу (истину в данном случае), если условие истинно?
Горазд проще засунуть тело условия в return и не париться - там результат будет тот же самый, а читаемость кода повысится в разы

5.
Код:
filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)
Забавно что ты знаешь о filter_var, но не слышал о filter_input, который как раз и нужен для такого рода кода,
чтоб не использовать суперглобальные массивы

6.
Код:
$_SERVER['REMOTE_ADDR']
У тебя в куче мест в коде именно эта строка принимается за истинный IP-адрес пользователя, но это вообще ни разу не корректное решение.
Нужно по очереди проверять заголовки 'HTTP_CF_CONNECTING_IP', 'HTTP_TRUE_CLIENT_IP', 'HTTP_X_REAL_IP', 'HTTP_FORWARDED' и ещё пяток других, а уже в самом конце смотреть 'REMOTE_ADDR'.
Вот хорошая отправная точка по этому вопросу (но решение не идеальное): https://stackoverflow.com/questions/...ress-using-php
Я предпочитаю не городить кучу условий, а перебирать эти заголовки в foreach-цикле и вываливаться из него, когда получили первый не пустой валидный адрес.

7.
Код:
foreach ($ab_proxy as $proxy_mask => $proxy_attr) {
$net = $proxy_mask;
$ip=ip2long($_SERVER['REMOTE_ADDR']);
Зачем ты в цикле каждый раз делаешь одно и тоже? Третья строчка (и следующие, которые связаны с ней - необходимо
вынести из цикла, а то ты стопицот раз будешь преобразовывать IP-адрес в целочисленный вид

8. Да и вообще весь цикл, что описан выше - скорее всего не имеет смысла, если нормально реализовать получение реального IP-адреса юзера.


И вообщем там по коду кучу таких хитровыебанных моментов есть, которые обычно только с опытом осознаешь

Но можно, конечно, да - ебашить просто по мануалам код, это ж PHP - нахуй тут думать?) Работает вроде в 8 из 10 случаев?
Ну и заебись) А если ещё и отображение ошибок отключить, так вообще ляпота
__________________
Мой блог в Telegram: https://tglink.ru/Lord_Alfred
Тесты производительности VPS: https://tglink.ru/VPSBench - присылайте с рефкой
Lord_Alfred вне форума   Ответить с цитированием
Старый 29.08.2019, 12:05   #18
tdsse cms
Senior Member
 
Регистрация: 09.06.2010
Сообщений: 243
Бабло: $34435
ТС -->
автор темы ТС По умолчанию

Lord_Alfred, ну как я и думал, добебался просто ради того чтоб доебаться, даже поверхностно не разобравшись

0) я умею читать код без отступов, ты не умеешь ? - твои проблемы, я продаю скрипт а на код для конкурса красоты кода. отступы тоже разные бывают, потом бы тебя длина отступов не устроила.
1) посмотри где это вызывается, все потом кешируется и почти не юзается эта функция.
2) true ничем не лучше и не хуже 1, дело вкуса.
3) не обязательный - не значит не нужный, многое в php 5 было не обязательного, сделавшего в php 7 код не рабочим, нужно приучаться писать по стандарту, а не экономить на 2 лишних символах.
4) я отлично читаю и понимаю данный код, если кто-то не понимает - тому значит еще надо учиться дальше.
5) тут хз о чем ты.
6) так задумано, для клаудфлара и т.п прокси который юзается сайтом в конфиге есть массив ипов, в остальном без разницы какой ип у юзера (там может быть ип оперы турбо или гугл прокси браузерный), для антибота важен максимально легитимный ип, REMOTE_ADDR и HTTP_CF_CONNECTING_IP (которые и передает REMOTE_ADDR спрятанный за клаудом) это обеспечивает, а HTTP_FORWARDED может иметь вообще все что угодно, хоть ип гугла, хоть текст а не ип.
7) да тут единственное место, в котором я с тобой согласен есть над чем работать.
8) это не получение ипа юзера, а проверка не юзается ли клаудфлар и т.п. прокси для сайта, чтоб получить REMOTE_ADDR спрятанный за клаудом.
tdsse cms вне форума   Ответить с цитированием
Старый 29.08.2019, 12:40   #19
Morgul
Senior Member
 
Аватар для Morgul
 
Регистрация: 03.10.2010
Сообщений: 1,712
Бабло: $296955
По умолчанию

про отступы.
я когда в вузе учился нас задрачивали, чтобы код был грамотно структурирован. То есть это должно быть уже на автомате, чтобы что бы ты не написал, где бы ты не работал - у тебя уже всё четко и на автомате.
Morgul вне форума   Ответить с цитированием
Старый 29.08.2019, 12:43   #20
tdsse cms
Senior Member
 
Регистрация: 09.06.2010
Сообщений: 243
Бабло: $34435
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от Morgul Посмотреть сообщение
про отступы.
я когда в вузе учился нас задрачивали, чтобы код был грамотно структурирован. То есть это должно быть уже на автомате, чтобы что бы ты не написал, где бы ты не работал - у тебя уже всё четко и на автомате.
я в вузе на прогера не учился, потому меня никто не задрачивал отступами. и как свободный не закомплексованный человек пишу без отступов.
tdsse cms вне форума   Ответить с цитированием
Старый 29.08.2019, 12:46   #21
Lord_Alfred
Хитрожопый
 
Аватар для Lord_Alfred
 
Регистрация: 15.07.2008
Сообщений: 599
Бабло: $93800
По умолчанию

Если б я просто доебаться решил, я бы просто тебя нахуй послал

0. Просто ты ничего больше кроме PHP в жизни не видел, вот и пишешь такое говно Попробуй на python тоже самое сделать))
И, да, у тебя часто логические ошибки как раз из-за такого форматирования кода, потому что ты нихуя сам не видишь их)

1. Ну да, у тебя эта функция вызывается только для ботов, части UA которых определены $ab_se, поэтому когда прибежит куча ботов - они
получат тормознутый дор/сайт, а админ даже и не узнает об этой проблеме) Збс решение, воистину!

2. Хуясе ты загнул ) Булевый тип меньше в памяти жрёт, плюс код лучше и короче получается. Ещё будешь пытаться переубедить меня в обратном?

3. Документацию посмотри. Оно и в 5 и в 7 версии работает одинаково, там только в 7.1.0 было единственное изменение этой функции и всё, код не менялся со времен мамонтов.

4. Если бы ты форматировал нормально код, то это было бы как минимум 5 строк кода за место одной с return. А тут - да, наебашил как попало и выглядит будто бы збс

5. Ну так открой документацию: https://www.php.net/manual/ru/function.filter-input.php
Вот хороший пример 6-летней давности, объясняющий почему не надо юзать суперглобальные массивы: https://weston.ruter.net/2013/10/22/...-filter_input/

6. IP-адрес нужно валидировать, во-первых. А во-вторых, для платных тарифов CloudFlare нужно юзать HTTP_TRUE_CLIENT_IP: https://support.cloudflare.com/hc/en...rue-Client-IP-

8. Ну тогда и ipv6 нужно проверять, у cloudflare 7 подсетей шестёрок: https://www.cloudflare.com/ips/


Цитата:
Сообщение от tdsse cms Посмотреть сообщение
я в вузе на прогера не учился, потому меня никто не задрачивал отступами. и как свободный не закомплексованный человек пишу без отступов.
Вот ты жгешь))) Свободный и незакомплексованный
Ты просто больших проектов ни разу не видел) Скриптики всё на 25 строк делаешь, вот тебя это и не парит. Когда будет 50kLock, тогда сам застонешь что чет нихуя не понятно)))
__________________
Мой блог в Telegram: https://tglink.ru/Lord_Alfred
Тесты производительности VPS: https://tglink.ru/VPSBench - присылайте с рефкой
Lord_Alfred вне форума   Ответить с цитированием