Isolution666
@Isolution666
Full-Stack Developer

Как сделать стоп-слова на Yii2?

Здравствуйте
--
Возможно кто-то поймёт меня не правильно, или оценит мою задумку, или подобное уже делалось. Хочу создать фильтр для спама со своего сайта. Принцип такой: Делал валидацию для проверки правильности указанного криптокошелька, через API - всё работает, но не сразу, а после нажатия кнопки submit, возможно сделал что-то не правильно, так как стандартная валидация срабатывает сразу, как только ввёл или не ввёл информацию в input. Раз свои функции с валидацией можно делать на Yii, и они работают не зависимо от того, до или после отправки формы, то можно заморочится и со стоп словами, которые обычно пишут спамеры в сообщениях сайта. Капча от google не поможет, просто капча, да и какой нужно писать паттерн, чтобы поле сообщения отлавливало подозрительные слова?
Поэтому нужно создать массив со стоп словами, по аналогии с валидатором нецензурной брани. Но последний валидатор создать проще. Почему? Потому что там очевидные слова, которые не спутаешь с культурной речью.
В чём сложность личного анти-спам валидатора. К примеру, я вставил в массив слово "купить". И представим себе вымышленного дядю Сема, который регулярно бомбардирует сайт сообщениями "вы можете купить швейцарские часы, только у нас, со скидкой 50%". Чтобы не отвлекаться на спам, и не вести анализ и удаление писем, проще создать валидатор, который не предупреждает, а наоборот, говорит, что отправил, притупив бдительность злоумышленника, а на деле письмо не отправляется, оно сразу удаляется, до того как оказаться на почте. Но приходит Петя, и пишет. "Я пытал купить у вас настольную лампу, но она не добавилась в корзину, так и не успел преобрести со скидкой". Это сообщение не только не даёт возможности дать подзатыльника нерадивому программисту, который в тот злополучный день не доделал корзину, но и потерял клиента, потому что валидатор удалил это письмо до того как его прочитала администрация сайта.
Писать бота? Или же всё таки создать очевидные стоп-слова, которые скорее словосочетания, которые ну никак не вяжутся ни с деятельностью магазина, не с деятельностью сайта. И тогда удалять их до того как послание благополучно залетить на почту. Сейчас может быть кто-то давится от смеха, но оценив масштабы, поясню, представьте, что за день на сайт и на почту пришло свыше 200 000 писем, на следующий день ещё столько же или чуть больше, по статистике, к примеру, 50 000 писем по делу, 10120 писем к примеру просто шутники - а как вы хотели, тролли есть везде))) А остальное - СПАМ.
Понимаете, не вы не ваш нанятый человек за день не сможет обработать столько информации, после 8 часов у монитора уже болят окуляры и пятая точка, а большее время нахождения за компом и подавно порча здоровья.
Так что шутки в сторону. Когда задача в зародыше решена не верно, при глобальном росте, устранить течь будет сложно. Равносильно одному человеку удерживать на плаву тонуший Титаник.
Думаю смысл этого валидатора и проблема - понятны.

ВОПРОС: Как лучше реализовать такой валидатор, что лучше всего сделать? Какой подход тут нужен? Делал ли кто-то подобное? Если да, то что из этого вышло?

P.S. возможно кто-то скажет, а зачем их удалять, запиши в БД, и удаляй через cron письма, помеченные, как подозрительные. В этом случае смысл валидатора полностью теряется. Зачем нужен такой скрипт, по решению проблем со спамом, если за него потом всё равно приходится всё пересматривать и переделывать. Придумали же сито, фильтры, чтобы оставалось что-то одно, а терялось что-то другое. Нужен совет, логика, и конструктивные объяснения.
  • Вопрос задан
  • 388 просмотров
Решения вопроса 1
@iSensetivity
бухгалтер, програміст-самоук
Может, есть смьіл посмотреть на что-то вроде етого: https://github.com/IQAndreas/php-spam-filter ? Только добавить слова-правила для русского.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
qonand
@qonand
Software Engineer
эх не тем Вы занимаетесь... Ваш валидатор не решит эффективно проблему. Тема защиты от спама слишком обширная что бы решить ее написанием простого валидатора. Не изобретайте велосипед, лучше ознакомьтесь с существующими методами защиты их сейчас, слава богу, предостаточно начиная от спам-фильтров гугла и заканчивая фаерволами и спец-сервисами анализирующими текст сообщений. Изучите более подробно тему, а не решайте задачу "в лоб"
Ответ написан
Isolution666
@Isolution666 Автор вопроса
Full-Stack Developer
Самое разумное решение, какое вообще мне пришло, хоть и прошло уже много времени с того момента, как я задал этот вопрос - так это вот эта страница - fspamlist.com/index.php?c=api

По API мы проверяем аж 3 параметра - email , login , IP-adress

Что даёт этот инструмент ))) Если хотя бы один из параметров вернёт FALSE - можем отказать пользователю хоть в чём (регистрация, авторизация, комментарий, отправка сообщений)
Валидаторы на Yii2 связанные с API я уже писал, так что проверку можно повесить хоть на какое поле ввода, или вообще на все, смысл в том чтобы в принципе проверить, кто пытается ворваться в поля ввода, и если данный пользователь в чёрном списке СПАМА - то мы ему отправляем бан.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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