Я колись ставив гуглу антиспам 3.0, може і норм, але

мені не дуже зайшло.
Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив
1. Перевірка схованого поля, зробив поле, сховав його в формі, назвав
<input type="email" class="n-message" name="n-message" value="">, в стилях указав display: none; і перевіряю через hooks, "якщо заповнено" даю відповідь 200 ок, але є ньюанс)
<?php

if ($_POST['n-message']) { // трололошка якась))
echo $FetchIt->success('Все гуд чувак');
die();
} else {
return true;
}

2. Перевірка самого повідомлення на знаки які не потрібні

// Визначаємо значення службових змінних за замовчуванням
$success=true;
$haserror=false;
// Масив заборонених фрагментів рядків
// Якщо в якому-небудь полі форми зустрінеться один з нижче перелічених фрагментів, то далі обробляти повідомлення не будемо
$forb=array(
'@',
'http',
'https',
'://',
'www',
'Test',
'test'
);

// Проходимо по масиву заборонених фрагментів
foreach ($forb as $f){
if($haserror==false){ // Якщо ще не зустрівся заборонений фрагмент
$haserror=strpos($value,$f); // Перевіряємо його в значенні поточного перевіряємого поля вводу
}
}

// Якщо була виявлена помилка
if ($haserror!=false) {
$validator->addError($key,'Недопустиме значення!');
$modx->log(xPDO::LOG_LEVEL_ERROR,'Тут живе какашка: IP='.$_SERVER['REMOTE_ADDR'].' Зміст: '.$key.': '.$value);
$success=false;
}
// Повертаємо результат роботи валідатора
return $success;
Ну це на прикладі MODX, але думаю і на EVO можно зробити
3. csrf_token, типу такого (https://laravel.com/docs/11.x/csrf), генерація токена, пишемо в кукі, перевірка токена перед відправленням повідомлення, але думаю що можно і не csrf_token а генерувати случайні літери та цифри,
use Illuminate\Support\Str;

// Генеруємо випадковий рядок довжиною 8 символів
$randomString = Str::random(8);
а то токени веліки))

2 ответов

63 просмотра

є різниця чи на php чи js реалізовувати?

𝓔𝓾𝓰𝓮𝓷𝓮𝓥-J Автор вопроса
Vitaliy Labenskiy
є різниця чи на php чи js реалізовувати?

Робив на пихі, але думаю що різниці немає

Похожие вопросы

Обсуждают сегодня

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
1
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
Доброе утро, мультиязычные сайты делал кто-нибудь? Какие подводные камни? Нужно чего нибудь допом ставить? Как поступить? В теории сделать две папки ru en и туда кидать страни...
Racoon Mitya
2
Ребят, а двух-факторку для плагина Users и для бэкенда октября кто-то прикручивал? Поделитесь опытом
Constantine Anikin
4
Карта сайта