Всю тему не читал. Чую что есть недопонимание от чего именно защищаемся - от "человека посередине" или от "спайдеров, имитирующих реального посетителя". В любом случае, абсолютной защиты не существует. При этом простые средства отсекут 80% нежелательных посетителей. Может быть это достаточно хороший результат.
Верно! Я в общем то об этом все время пишу и дублирую доменов/сайтов т.к. все это по-разному называют =) Это совершенно не важно. Важно, чтобы с "чужих" страниц/доменов/сайтов не обращались к моему .php который получает POST с картинкой, обрабатывает на сервере картинку, и возвращает обработанный результат. ===================================== Наверное проще показать: s-art.pro - это "PRO" версия со всякими "непонятными" настройками =) Суть преобразования - подготовить картинку рисуемую одной непрерывной линией - это для хобби такого, Стрингарт. Step_1: [Ореn] открываете картинку, лучше фото лица >>(можно ее масштабировать и т.д.)>>жмете [Crop & to Step2] Step_2: (этот шаг можно пропустить), сразу жмете [to Step3] Step_3: появится результат ===================================== Так вот, при нажатии на [to Step3] или [Upload] - js отправляет картинку из Step_2 на upload.php, который собственно и преобразует ее в "цепочку" чисел, по которым потом рисуется "штриховой" рисунок. Вот к этому upload.php и "цепляются" пираты. С сайта на сервер уходит картинка, с сервера на сайт приходит "цепочка" чисел, типа 0,125, 43, 76... Все это в пределах одного POST Делать регистрацию я очень не хочу, т.к. сайтом пользуются совершенно не дружащие с компом юзеры, раньше регистрация была, но пришлось ее убрать... --- Добавлено --- Да, это выделенный сервер под Server 2019, полностью под моим администрированием. --- Добавлено --- Именно от них! И от тех, кто просто тупо "дублирует" всю мою страницу к себе на сайт или грузит её расширенным cURL и парсит "цепочку"
От тех кто тупо дублирует к себе страницу на сайт уже нашли решение - CSRF, а от расширенного парсинга с заголовками + CURL решения не нашли. Так что можете проверить первое решение, и понять на сколько снизится трафик для начала. Может и не потребуется ничего больше делать. Кстати, а как на счет дополнительно добавить капчу?
Капча так же не привязывается к домену - и я лично, могу элементарно "выгрызть ее из кода" при помощи JS за 5-10 минут, так что это скорее "замок от своих", чем против "воров" =)
Мне кажется, вы вообще не в ту сторону смотрите. Задача решения не имеет, CURL по сути, и есть браузер, а то, что форму можно отправить откуда угодно, так это проблема не CURL в частности, а HTTP вообще. Если у вас проблема только с "паразитированием" на неавторизованном доступе, добавляйте на готовое изображение водяной знак с вашим доменом. Тоже, в принципе решаемо, но требует больших ресурсов.
В общем, попробую вкорячить на свой сайт какую то модификацию по мотивам вот этой статьи и поюзать для проверки токены reCaptcha http://cccp-blog.com/koding/google-recaptcha-v3 а там посмотрим, насколько она будет "грузить светофорами" живых юзверей =) --- Добавлено --- Спасибо! буду надеяться, что эта капча + модифицированная проверка сработают. -- К сожалению, это бессмысленно, т.к. охотятся не за картинкой, а за "цепочкой" чисел, по которой она строится.
Это был один из вариантов. Хитрость. Построенная на вероятном недопонимании злоумышленником механизма происходящего. Это может быть что-то другое. Например подключаемый элемент оформления страницы(изображение, стиль, скрипт и тд) на самом деле являющийся исполняемым файлом записывающим в переименованную сессию какое-то уникальное значение. Если на странице такого будет очень много, и при этом, оно будет, периодически переключаться, то это несколько затруднит жизнь злоумышленнику. Но не более. Категоричного решения нет.
Пока что практически сделал reCaptcha 3 - до этого потестил на "пробной" странице, вроде она не грузит "светофорами" и работает очень шустро. Сдается мне, что в моей ситуации это лучшее из доступного. От "наглого" cURL, который ничего не парсит, а просто обращается к моему .php напрямую, это точно поможет, т.к. проверяется наличие подтвержденного токена. + как я почитал, cURL не так то и просто заставить пройти эту капчу даже обвесив дополнительными библиотеками, как минимум, это одно из реально действенных решений, не требующих каких то глобальных "заморочек" от разраба, т.е. от меня любимого =) Все же тяжко в одно рыло тащить подобный проект, очень уж много всего разного: JS, PHP, C++, нейросетки с их долбанутым Питоном, Pascal, .NET, C#, SQL, куча математики, HTML, Wordpress, настройка сервака, да еще до кучи постоянная "ругань" с хостерами у которых вечно что то отваливается, биллинговые системы с умолишенским API, графические библиотеки у которых весь хелп это пара комментов в самом коде из 100500 строк, всякие баннеры и верстка "морды", тексты на английском, по которому у меня твердая "двойка"... но интересно, аж жуть =)))
UPD - сделал reCaptcha 3, вроде работает без нареканий и на десктопах и на смартфонах. Юзеры пока не жалуются... Могу рекомендовать как относительно безболезненное и простое решение. Суть решения. 1. Рекапча на странице генерирует токен, который содержит в себе информацию о поведении пользователя: там куча всего, включая движения мышкой и местоположение... 2. Этот токен передается в требующий "защиты" .php вместе с другой нужной вам информацией 3. В .php в самом начале стоит отправка полученного токена в Гугл, где он дешифруется секретным ключом и приходит оценка от 0 до 1, где 0 - это скорее всего к .php обратился скрипт, 1 - скорее всего это было разумное теплокровное, включая кошек... Обратите внимание, что токен Рекапчи "живет" только две минуты!!!! Т.е. его желательно обновлять при каждом обращении к .php если вы к нему обращаетесь не часто. Что хватать, куда бежать, можно посмотреть здесь: Google reCAPTCHA v3: обзор возможностей и установка на PHP сайт (cccp-blog.com) servlets - Google Recaptcha v3 example demo - Stack Overflow Как убрать значок reCAPTCHA v3 и не поссориться с Гуглом | mArjArI. Создание сайтов
Если я правильно понял, то тут просто используется статистика поведения "браузера" на других сайтах, то есть, по сути, это авторизация. Вряд ли оно будет работать с мнительными пользователями, блокирующими трекеры и очищающими историю. Но рад, что вы нашли устраивающее вас решение.
Среди пользователей моего сайта, большинство людей не понимающих что такое Ctrl+F5, чем "мнительных". Так что тут всё нормально =))) В любом случае, reCaptcha это как раз симбиоз всего, что тут обсуждалось: токен + "запутанный" JS код запрашивающий первичный ключ + проверка на сессии (с сохранением их на серверах Гугла) + короткие сессии + (из необсуждаемого ранее) AI проверка на "робота" = кмк сложно найти что-то подобное "в одном флаконе" с внятным и много раз "разжеванным" хелпом, понятной интеграцией, да еще и заведомо мульти- браузерное/платформенное (и бесплатное!)