Насколько боты директа умеют отправлять формы

123 4
R
На сайте с 06.02.2022
Offline
53
#11
ZEEW #:
Для начала сделайте хотя бы проверку при прямом обращении к файлу if $_SERVER['REQUEST_METHOD'] === 'POST'

Не особо смогу вам как мастер php отвечать, очень поверхностно.

Возможно это имели ввиду

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    // Проверка на заполнение поля телефона
    if (empty($_POST['wgphone'])) {
        http_response_code(400);
        echo "Введите номер телефона.";
        exit;
    }
Mik Foxi
На сайте с 02.03.2011
Offline
1218
#12
ronibestplay #:
нет там отправка только. Но если его в url браузера вбить он не будет отправлять.

так там должна быть проверка, именно там она настоящая. в форме проверка это защита "от дурака", чтоб юзеру понятнее было что вводить. но если бот без js то никакой валидации не происходит на форме. А дальше там и XSS могут быть. 

Антибот, антиспам, веб фаервол, защита от накрутки поведенческих: https://antibot.cloud/ (8 лет на защите сайтов). Форум на замену серчу: https://foxi.biz/
R
На сайте с 06.02.2022
Offline
53
#13
Mik Foxi #:

так там должна быть проверка, именно там она настоящая. в форме проверка это защита "от дурака", чтоб юзеру понятнее было что вводить. но если бот без js то никакой валидации не происходит на форме. А дальше там и XSS могут быть. 

не совсем пойму о чем речь. Пока на сайте не введешь телефон никакой отправки нет. Не будем считать ботов директа какими то всемогущими ок
Mik Foxi
На сайте с 02.03.2011
Offline
1218
#14
ronibestplay #:
не совсем пойму о чем речь. Пока на сайте не введешь телефон никакой отправки нет. Не будем считать ботов директа какими то всемогущими ок

эта "проверка" это для обычных браузеров, с js. бот просто взял код формы, ему без разницы ваш js. 

if (empty($_POST['wgphone']))

тут еще должна быть регулярка которая проверит точно ли там номер, а не чтото постороннее.

R
На сайте с 06.02.2022
Offline
53
#15
Mik Foxi #:

эта "проверка" это для обычных браузеров, с js. бот просто взял код формы, ему без разницы ваш js. 

тут еще должна быть регулярка которая проверит точно ли там номер, а не чтото постороннее.

Воспользуюсь чудом техники, вы такой имели ввиду подход
if ($_SERVER["REQUEST_METHOD"] == "POST") {

    // Проверка на заполнение поля телефона
    if (empty($_POST['wgphone'])) {
        http_response_code(400);
        echo "Введите номер телефона.";
        exit;
    }

    // Регулярное выражение для проверки формата номера телефона
    $phone = $_POST['wgphone'];
    $phonePattern = "/^\+?[0-9]{10,15}$/";  // Пример: допускаются номера с 10 до 15 цифр, с "+" в начале

    if (!preg_match($phonePattern, $phone)) {
        http_response_code(400);
        echo "Введите корректный номер телефона.";
        exit;
    }

    // Остальной код обработки
}

Mik Foxi
На сайте с 02.03.2011
Offline
1218
#16
ronibestplay #:
Воспользуюсь чудом техники, вы такой имели ввиду подход

да. 

R
На сайте с 06.02.2022
Offline
53
#17
Mik Foxi #:

да. 

Спасибо. Не совсем получилось настроить сразу, но суть мне понятна. (пока отправка с таким началом не идет) Там намешано, проще буду разбираться наверное сам. Использую такую штуку, похоже они конфликтуют.
    <script src="https://cdn.jsdelivr.net/npm/jquery.maskedinput@1.4.1/src/jquery.maskedinput.min.js" type="text/javascript"></script>
<script>
document.addEventListener("EasyNetShopModalOpened", function(event) {
                ens_jQuery(function() {
                        ens_jQuery('input[name="phone"]').mask('+7(999)999-99-99');
                });
        }, false);
</script>

Валерий Апполонов
На сайте с 12.11.2023
Offline
19
#18
Боты Директа могут все отправлять и формы и комментарии. Не пробовал ещё ? Попробуй на ворд прессе. Я уже запарился чистить кеш от их 
Михаил
На сайте с 02.03.2007
Offline
190
#19

Чтобы было понятно – на конкретном примере. Нужно защитить замок от визита нежелательного гостя.

Вариант 1: гость подходит к воротам, они открываются, из замка выходит охранник, спрашивает у гостя «Кто такой? Цель визита?», получает от того кистенем по башке, гость отбирает у побеждённого охранника ключи, отпирает ворота и заходит в замок. Так работают проверки на фронтэнде (HTML-5,JavaScript, JQuery и т. п.)

Вариант 2: гость подходит к воротам, через стену замка перелетает записка с вопросами «Кто такой? Цель визита?». Гостю нужно написать свои ответы на этой записке и перебросить её обратно через стену обитателям замка. Если ответ окажется удовлетворительным – ворота откроются и гостя впустят. Если нет – свободен.  Так работают проверки на бэкэнде (PHP, ASP, Python и т. д.)

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

Вот видишь, Алиса, что нужно бежать со всех ног, чтобы оставаться на месте! А чтобы куда-нибудь добраться – нужно бежать вдвое быстрее!
S3
На сайте с 29.03.2012
Offline
367
#20
ronibestplay #:
нет там отправка только. Но если его в url браузера вбить он не будет отправлять.

Это не показатель, браузер не умеет пост-запросы отправлять. Тестируйте через постман

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий