Здесь просто не известно какой код он получает со страницы. Если изначальный, то там сразу нет кода nonce, а подгружается после загрузки страницы через JS. Конечно можно сразу напрямую обратиться к файлу php, который генерирует этот код и записывает в сессию, а потом уже отправлять форму с этим кодом.
Посмотрю как будет. Этот же nonce можно и не в форме разместить, а где-то отдельно на странице. В JS потом идет обращение по id и добавить к отправляемым данным.
Что это такое? Можно какой-то пример?
Промежуточные итоги, если кому-то интересно.
Кратко в чем суть:
1) есть сайт на котором есть форма расчета (в ней основном выпадающие списки и нет input, textarea); html страница берется из кэша; расчет производится без перезагрузки страницы (отправка и получение через JS fetch() и другие).
2) Проблема: к одной странице постоянные обращение и получение расчетов с нескольких ай пи с периодичностью 30-60 сек на протяжении почти всех суток. Не известно или просто бот или парсинг результатов расчетов для другого сайта (если бот, то зачем разгадывает капчу). Этот бот почти 100% проходил капчи: а) сравнение рисунков; б) ввести текст со сгенерированной картинки; в) решить математический пример на сгенерированной картинке типа 3*3=? 1*?=11 и другие.
А в соседней ветке доказывают, что бот кнопку отправки не может найти на странице. Все они могут, а если целенаправленно, то неизвестно где предел.
Решил попробовать использовать вот этот совет.
В итоге сегодня утром запустил сайт с такими изменениями:
1) Использовал Nonce в форме (так как странице берется из кэша, то код вставлялся с помощью JS который получал из PHP файла)
2) При нажатии на кнопку отправки, данные отправляются с помощью JS и появляется еще урезанный вариант капчи - просто кнопка "Подтвердить отправку" без никаких вводов кода
3) После этого в PHP файл проходят проверки и формирование результата (результат в виде html, но теперь засунул его в оболочку json и уже JS вставляет результат на сайт), а также формируется новый Nonce
Результат пока неясный. С тех ай пи, с которых были заходы пока идут на удаленные файлы (captcha.php, index_js.php). Посмотрю что дальше будет. Если это целенаправленно делается кем-то, то наверное нужно алгоритм перестраивать, если типа браузерный бот, который действует как человек и будет переходить по кнопкам отправки, то наверное ничего не сделаешь.
Спасибо за участие в обсуждении.
Какой-то же способ должен быть? Cloudflare?
Да, на 1 страницу одной языковой версии.
Только сейчас дошло что нужно посмотреть а что он вообще передает в форме (параметры по умолчанию или другие значения).
Как Вы думаете, а если доступ к расчетам после регистрации сделать, то это остановит ботов или они и такое умеют - зарегистрироваться на сайте, войти в аккаунт и дальше продолжать?
Конечно может и такое быть. Только не пойму зачем ему разгадывать капчу? Да еще и правильно )
Можно конечно добавить скрытое поле и посмотреть что будет.
Я не говорю что это 1 человек.
Предполагаю что это сделан какой-то сервис (куда могут заходить разные люди), пользователи заполняют форму на подобие моей и при отправке этот сервис идет на мой управляющий файл и передает туда данные пост для получения расчета (перед этим разгадывает капчу).
Не может 1 человек отправлять данные каждые 30-60 сек. на протяжении длительного времени (один и тот же ай пи).
Вот вчера вечером поставил сбор данных по 1 ай пи (как видите, почти все капчи разгаданы. да не почти, а все; просто пару раз сработала защита по времени):
Сегодня то же самое только с другого ай пи:
10:22:51 210.14.96.197 (Yangon)
10:21:59 210.14.96.197 (Yangon)
10:21:29 210.14.96.197 (Yangon)
10:20:54 210.14.96.197 (Yangon) и т.д.
OK_MC! / 19:02:21 / 2OK_MC! / 19:02:44 / 3OK_MC! / 19:03:41 / 2OK_MC! / 19:04:29 / 13OK_MC! / 19:05:12 / 2OK_MC! / 19:05:49 / 11OK_MC! / 19:13:42 / 5OK_MC! / 19:14:46 / 3OK_MC! / 19:15:01 / 3OK_MC! / 19:18:18 / 2OK_MC! / 19:18:30 / 12OK_MC! / 19:19:41 / 3OK_MC! / 19:19:58 / 8OK_MC! / 19:20:23 / 13OK_MC! / 19:22:34 / 3OK_MC! / 19:22:48 / 6OK_MC! / 19:23:38 / 5OK_MC! / 19:25:53 / 5OK_MC! / 19:27:00 / 12OK_MC! / 19:27:37 / 3OK_MC! / 19:29:04 / 13OK_MC! / 19:30:00 / 3OK_MC! / 19:30:36 / 6Error. You're making a lot of requests. Repeat after some time. <span class="ts22 t-blue">(10 sec.)</span><br> 19:30:44 / 6OK_MC! / 19:31:30 / 11OK_MC! / 19:32:21 / 2OK_MC! / 19:34:04 / 8OK_MC! / 19:34:43 / 2OK_MC! / 19:35:18 / 3OK_MC! / 19:35:39 / 12OK_MC! / 19:36:00 / 2OK_MC! / 19:36:32 / 5OK_MC! / 19:38:23 / 3OK_MC! / 19:38:58 / 3OK_MC! / 19:39:33 / 3OK_MC! / 19:39:58 / 6OK_MC! / 19:40:28 / 12OK_MC! / 19:42:42 / 3OK_MC! / 19:43:18 / 2OK_MC! / 19:44:05 / 2Error. You're making a lot of requests. Repeat after some time. <span class="ts22 t-blue">(10 sec.)</span><br> 19:44:13 / 11OK_MC! / 19:48:45 / 13OK_MC! / 19:49:24 / 11OK_MC! / 19:50:04 / 2OK_MC! / 19:50:27 / 3OK_MC! / 19:51:54 / 5OK_MC! / 19:52:37 / 13OK_MC! / 19:53:42 / 3OK_MC! / 19:54:14 / 2OK_MC! / 19:54:34 / 3OK_MC! / 20:01:27 / 3OK_MC! / 20:01:43 / 2OK_MC! / 20:02:24 / 2OK_MC! / 20:02:54 / 2OK_MC! / 20:03:40 / 3OK_MC! / 20:03:56 / 3OK_MC! / 20:05:46 / 2OK_MC! / 20:06:09 / 6OK_MC! / 20:09:45 / 6OK_MC! / 20:10:11 / 3OK_MC! / 20:10:31 / 13OK_MC! / 20:11:02 / 5OK_MC! / 20:12:16 / 3OK_MC! / 20:14:26 / 3OK_MC! / 20:14:47 / 6OK_MC! / 20:16:17 / 8OK_MC! / 20:16:42 / 8OK_MC! / 20:44:47 / 5OK_MC! / 20:45:59 / 12OK_MC! / 20:46:31 / 3OK_MC! / 20:47:08 / 2OK_MC! / 20:47:51 / 2OK_MC! / 20:58:23 / 2OK_MC! / 20:59:48 / 3OK_MC! / 21:00:08 / 13OK_MC! / 21:00:26 / 3OK_MC! / 21:00:52 / 13OK_MC! / 21:01:04 / 8Error. You're making a lot of requests. Repeat after some time. <span class="ts22 t-blue">(10 sec.)</span><br> 21:01:15 / 5OK_MC! / 21:01:50 / 2OK_MC! / 21:02:38 / 11OK_MC! / 21:08:06 / 8OK_MC! / 21:47:29 / 3OK_MC! / 22:37:10 / 12OK_MC! / 22:37:37 / 8OK_MC! / 22:38:53 / 11OK_MC! / 22:39:23 / 2
Я так понял, что там дискуссия о ботах. Но у меня идет целенаправленное - человеком. Ботам это и нафиг не нужно ) Данные вообще без перезагрузки страницы через JS fetch() отправляются.
Ну так они просто передадут POST запросом данные на исполняющий файл и получат результат расчета (они же получают данные со своей формы по шаблону моей, которую заполняет пользователь, так что время заполнения - это не вариант).
Есть одна идея, но не знаю получится или нет. Если завтра допишу код, то попробую что будет
Проверил варианты:
1) Если загрузить через iframe, то отправка капчи не работает в таком варианте (форма не отправляется).
2) Если загрузить страницу сайта на другой домен через php file_get_contents , то даже рисунок капчи не показывается.
Возможно такой вариант:
1) Загружают captcha.php, где формируется рисунок с заданием и записывается в сессию. Отправляется на сервис для разгадывания капчи (автоматично или в ручном режиме). Пока пользователь заполняет данные формы, приходит ответ.
2) Вызывается файл обработчик index_js.php куда методом POST передаются данные и код из капчи.
Если все же через iframe, то можно что-то сделать?
Астрология (уникальный контент). Конкретно сейчас идут эти запросы на 1 страницу EN (запрос популярный, но я далеко не в топе. Если подобный запрос в Яндексе, то где-то 130 тыс. запросов в месяц).
С 17-30 до 18-00 снова с одного ай пи 25 обращений. И математическую капчу уже без ошибок проходят )
В .htaccess стоит <IfModule mod_headers.c>Header set X-Frame-Options "DENY"</IfModule>
Проверил, просто через iframe сайт не подгружается. Может через php (file_get_contents) ?