Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 34 Ответов
  • 5534 Просмотров
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Приветствую всех! Пишу вам камрады так как я в небольшом тупике. Вопрос собственно лаконичен и все с ним сталкивались - это СПАМ.
Немного технических данный:

СMS: Joomla! 3.9.16
Конструктор форм: Chronoform 6

Как бы и горе не знал, но вот пришла беда, и устремился спам на почту админа. В хронаформу прописал дополнительную валидацию:
Поля имя - только рус. буквы, все остальное под запретом.
Поле номер тел - цифры и символы ()-, все остальное под запретом.
Поле сайта - только рус., ингл яз., цифры, символы /:, все остальное под запретом.
Поле сообщение или вопрос - только рус.язык, все остальное под запретом.
Поставил Google reCaptcha v2 (v3 Chronoform 6 не поддерживает без доп. плагина, пока его не ставил).
Проверил заполнение форм, все ОК, все работает. НО!

Как показало время, СПАМ идет игнорируя валидацию палей. В некоторых формах на сайте стоит поле с выбором из списка и даже там бот умудряется прописать свой текст.
Первая мысль - ВЗЛОМАЛИ! Поменял все пароли, обновил движок - затишье продлилось пол дня и опять спам все тот же и все также игнорирует валидацию. Понимаю что он действует через код сайта, но не могу понять как. Может кто сталкивался или есть какие советы куда копать?
Буду рад любой помощи. Вопрос просто загнал в тупик.

Пока жду от вас советы и идеи, сам не сижу капаю данный вопрос! *ОХ-Х-Х*
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Валидацию надо на сервере делать, а не посредством javascript. Напишите свою форму обратной связи, создайте в нем замаскированные поля и если при отправке формы, есть данные в этих скрытых поля, смело отметайте запрос.
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Так спам через формы Chronoform или через форму обратной связи Joomla, в которой подключена рекапча Google ?
В форме обратной связи Joomla , в компоненте Контакты, отключена отсылка копии ?
Мне пишут спам через форму обратной связи Joomla, но раз в 1-2 дня, и смысла в этом спаме не пойму . А раньше, до отключения отсылка копии, спам до 10 писем в день был.
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Валидацию надо на сервере делать, а не посредством javascript. Напишите свою форму обратной связи, создайте в нем замаскированные поля и если при отправке формы, есть данные в этих скрытых поля, смело отметайте запрос.
Я бы с радостью это сделал бы... но у меня не один сайт и все формы имею различные характеристики и требования. Написать все их... очень геморно и конструктор меня всем устраивает. Тем более ранее такой проблемы не замечалось. Ваш подход боле правильный и надежный, но в моем случаи очень трудозатратный.
И как я писал выше, очень хочется понять каким образом эти боты проходят мимо всех преград.
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Так спам через формы Chronoform или через форму обратной связи Joomla, в которой подключена рекапча Google ?
В форме обратной связи Joomla , в компоненте Контакты, отключена отсылка копии ?
Мне пишут спам через форму обратной связи Joomla, но раз в 1-2 дня, и смысла в этом спаме не пойму . А раньше, до отключения отсылка копии, спам до 10 писем в день был.
Все же через Chronoform, так как шаблоны писем которые приходят на почту написаны через Chronoform и ссылка в письме выдается на отправку именно Chronoform.
Я тут немного покопался, не знаю может прав или нет, но все же хочу навести порядок.
1. После обновления Chronoform на более новую версию, изменился интерфейс и как я уже заметил логика обработки форм. Разработчик оставил возможность поддержки более поздних форм, которые были построены на старом интерфейсе. Вообщем пока все неоднозначно, ковыряю.
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Валидацию надо на сервере делать, а не посредством javascript. Напишите свою форму обратной связи, создайте в нем замаскированные поля и если при отправке формы, есть данные в этих скрытых поля, смело отметайте запрос.
Еще добавлю. Недавно тоже наткнулся на один прием. Создаем кнопку, которую видит только бот и по нажатию отправка блокируется. Мне эта фишка очень понравилась, но пока не придумал как ее в Chronoform-е реализовать.
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Разработчик оставил возможность поддержки более поздних форм, которые были построены на старом интерфейсе. Вообщем пока все неоднозначно, ковыряю.
А в шаблоне сайта макеты форм не переопределены ? В какой форме спам, можно скрин письма ?
Мне когда надоела спам, я добавил код на проверку по эмэйл в стандартный плагин recapctcha Joomla . В Jcomments делал проверку на наличие в тексте комментария http https
Конечно при обновлении приходилось по новой добавлять код .
п.с. Нашел тему свою
Спам через форму обратной связи
« Последнее редактирование: 24.03.2020, 17:40:53 от draff »
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
А в шаблоне сайта макеты форм не переопределены ? В какой форме спам, можно скрин письма ?
Мне когда надоела спам, я добавил код на проверку по эмэйл в стандартный плагин recapctcha Joomla . В Jcomments делал проверку на наличие в тексте комментария http https
Конечно при обновлении приходилось по новой добавлять код .
п.с. Нашел тему свою
Спам через форму обратной связи
Нет, не переопределены (если я понял правильно вопрос  *POPCORN*).
Скрин... да не вопрос. Вот - http://joxi.ru/p27BxWFKg5R5m7
Перед тем как создать тему я находил данные посты. Но честно, ни че не понял, кроме того что там ручками надо прописывать адреса почты. Но в моем случаи адреса каждый раз разные. Я пытался найти закономерности, но их нет. Чистый рандом.
*

ProtectYourSite

  • Живу я здесь
  • 2356
  • 135 / 4
  • Безопасность вебсайтов
Это платный компонент ? Если логика не работает на бэке, то  можно спросить техподдержку.
Если самому пытаться отсеять спам, то из бесплатного рекапча 3. Либо использовать платные сервисы, к примеру, как на этом форуме.
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Перед тем как создать тему я находил данные посты. Но честно, ни че не понял, кроме того что там ручками надо прописывать адреса почты. Но в моем случаи адреса каждый раз разные. Я пытался найти закономерности, но их нет. Чистый рандом.
В Jcomments делал проверку на наличие в тексте комментария http https
Код
*

stepan39

  • Захожу иногда
  • 497
  • 27 / 0
Подобная ситуация с RSForm Pro. Валидация побоку, как собственно и капча Google. Загадка в другом, что на сайте полно этих форм, но долбят только одну - форму обратной связи. Пример под катом.
Спойлер
[свернуть]
Названия полей менял - пофиг.  Блокировал IP целыми диапазонами (спам идет исключительно с похожих IP):
Спойлер
[свернуть]
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Добрый день камрады!

Не хочу кидать данную ветку по этой проблемке. Перечитал кучу форумов как забугорных так и наших скудных русских (в этом случаи все плохо). С помощью подсказок ребят выше в этой ветке (dm-krv, ProtectYourSite, draff - реально спасибо вам), вы заставили меня задумать в правильных направлениях. Что на сегодня у меня вышло:
1. Я пересобрал форму - вылезла какая то проблема с отправкой 2 писем, пока не разобрался.
2. Настроил валидацию на стороне пользователя через обработку JavaScript (для людей).
3. Настроил проверку валидации на стороне сервера с прерыванием последующей обработки формы и ее отправки (для ботов - ЕЩЕ ТЕСТИРУЮ, есть подозрение, что данная проверка коснется только валидации по заполнению полей (заполнено или нет). А мне надо не только проверка на заполнение, но еще и как именно они заполнены - ведь именно тут и происходи понимание того почему бот проходит валидацию, которая стоит для пользователей, типа: только русские буквы и все.). Хочу провести симуляцию от бота, отключить JavaScript в браузере и отправить форму с нарушением пользовательской валидации.
4. Подключил проверку Google reCaptcha v2 на стороне пользователя (как по мне бессмысленная вещь, так как проверка на стороне сервера рубит отправку (еще разбираюсь, сложности в осознании логики интерфейса хроноворма 6.1.х, думаю тут и кроется вопрос с 2 отправкой писем).
5. Добавил проверку невидимого поля для ботов, поставил в самый вверх и на стороне сервера поставил прерывание обработки если поле заполнено (думаю это самое действенное решение, хоть его и можно обойти, но будем реалистами не все боты ко мне щемятся).

Фиксирую время 13:00 по МСК, начал тест.
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Подобная ситуация с RSForm Pro. Валидация побоку, как собственно и капча Google. Загадка в другом, что на сайте полно этих форм, но долбят только одну - форму обратной связи. Пример под катом.
Спойлер
[свернуть]
Названия полей менял - пофиг.  Блокировал IP целыми диапазонами (спам идет исключительно с похожих IP):
Спойлер
[свернуть]

Ну я как бы по хроноформу тут вопрос веду, но думаю тут все также одинаково. После отправки формы, формируется техническая ссылка, обновляя которую (в браузере) происходит повторная отправка без проверки капчи и валидации. Вот и ответ. Я нашел на просторах интернета (на забугорных сайтах) инфу, что есть боты которые парсят данные ссылки по сайтам и там где ответ 200 бот их собирает в базу и начинает затем долбить с подменой IP, временными тайменгами и тд (короче все методы для обхода защиты от бота). Таких сволачей надо отлавливать только на стороне сервера и создавать им кучу подводных камней в виде скрытых полей и даже подмены кнопки для отправки (тоесть 2 кнопки с разыми событиями: одна для бота, которая не видна пользователю и она стоит выше основной (тоесть первая) и вторая для пользователя. Я б с огромной радостью применил данный вариант к своему вопросу, вот только его реализация... мне пока неподвластна.
*

stepan39

  • Захожу иногда
  • 497
  • 27 / 0
но думаю тут все также одинаково
100%
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Мне помогает подмена ссылки приемщика формы. В action формы вставлена ссылка, которая ничего не отправляет, но возвращает хороший ответ. А сама же отправка выполняется аякс-запросом на другую ссылку. Можно еще лишний параметр добавить, которого нет в форме и значение которого сервер сможет проверить. Например, метку времени (а сервер проверит, чтоб она лежала в допустимых пределах). Единственный нюанс - серверную часть (обработчик формы) надо делать кастомный, чтоб учесть все эти "хитрости".
Как итог - спама нет. И капчи нет.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
но думаю тут все также одинаково. После отправки формы, формируется техническая ссылка, обновляя которую (в браузере) происходит повторная отправка без проверки капчи и валидации. Вот и ответ. Я нашел на просторах интернета (на забугорных сайтах) инфу, что есть боты которые парсят данные ссылки по сайтам и там где ответ 200 бот их собирает в базу и начинает затем долбить с подменой IP, временными тайменгами и тд (короче все методы для обхода защиты от бота).
Значит в расширении нет проверки
Код
JSession::checkToken('get') or die( 'Invalid Token');
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
Сделал хак в модуле- делаем проверку на наличие http or https , проверяйте, пользуйтесь .
 
Код
	$event = G2\L\Request::data('event', '');
// Start OlegK
$message = G2\L\Request::data('message', '');
if (!empty($message)) {
if (preg_match("/(http|https)/i", $message)) {
$app = JFactory::getApplication();
$app->redirect(JURI::Current(), 'No Spam', 'error');
}
}
// END
if(!empty($event)){
п.с.
Это файл модуля, в котором  я добавил проверку на сервере, на наличие http или https в поле message. Если есть стоп слова, код редиректит на текущую страницу и выдает сообщение  'No Spam' и ошибку типа Error которая должна выводится в шаблоне в
Код
<jdoc:include type="message" />
Аналогично можно сделать по любому полю и добавить стоп слова.
« Последнее редактирование: 26.03.2020, 15:31:42 от draff »
*

dm-krv

  • Завсегдатай
  • 1028
  • 28 / 0
Мне помогает подмена ссылки приемщика формы. В action формы вставлена ссылка, которая ничего не отправляет, но возвращает хороший ответ. А сама же отправка выполняется аякс-запросом на другую ссылку. Можно еще лишний параметр добавить, которого нет в форме и значение которого сервер сможет проверить. Например, метку времени (а сервер проверит, чтоб она лежала в допустимых пределах). Единственный нюанс - серверную часть (обработчик формы) надо делать кастомный, чтоб учесть все эти "хитрости".
Как итог - спама нет. И капчи нет.

Забавно, я делаю так же) В акшен у меня деза, а реальный запрос идет на другую страницу, при этом адрес страницы зашифрован частями совсем не очевидным способом и генерируется на лету, когда пользователь выполняет какие-то действия, например, нажимает инпуты, скролит страницу и т. д. Ведь вполне очевидно, что если форма заполнена без единого клика на странице и без скрола, это явная лажа.
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Так... ночка прошла и полный крах. Бот попался с изюмом. Расставленные ловушки обошел, да еще как издевательски начал картинки постить. :dry:
Значит делаем вывод, доп.инпут как ловушка для бота оказалась не эффективна. Скорее всего он ее распознает... к примеру по наличию определенного CSS - hidden
<div class="field hidden ">
    <label>testbot</label>
    <input name="testbot" type="text">
</div>
Так как это самое простейшее, ну не может же он заранее видеть обработчик. Видит только код, значит сейчас найду этот CSS и сменю его, а так же перекину это поле в середину формы и замаскирую ее под... к примеру отчество или тему вопроса.
Может это прозвучит самонадеянно, но я верю что для победы надо искать более простой и легкий способ. Была бы известна логика бота... то и подножку ему можно было поставить очень легко.
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Мне помогает подмена ссылки приемщика формы. В action формы вставлена ссылка, которая ничего не отправляет, но возвращает хороший ответ. А сама же отправка выполняется аякс-запросом на другую ссылку. Можно еще лишний параметр добавить, которого нет в форме и значение которого сервер сможет проверить. Например, метку времени (а сервер проверит, чтоб она лежала в допустимых пределах). Единственный нюанс - серверную часть (обработчик формы) надо делать кастомный, чтоб учесть все эти "хитрости".
Как итог - спама нет. И капчи нет.
Тоже классная идея, но и главная простая. Только мне до конца еще не понятен сам процесс, точнее затрудняюсь выполнить эти действия. Переживаю что как сильно это все же затронет плагин, так сильно хроноворм я еще не ковырял. А этот способ был применен случаем не на хронаворм? (ну так, а вдруг  ;D)
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Сделал хак в модуле- делаем проверку на наличие http or https , проверяйте, пользуйтесь .
 
Код
	$event = G2\L\Request::data('event', '');
// Start OlegK
$message = G2\L\Request::data('message', '');
if (!empty($message)) {
if (preg_match("/(http|https)/i", $message)) {
$app = JFactory::getApplication();
$app->redirect(JURI::Current(), 'No Spam', 'error');
}
}
// END
if(!empty($event)){
Не хочу показаться глупым, но скажу так, я умен немного в другой сфере - SEO, управление, а код... уровень не большой. Если есть такая возможность, объясните пожалуйста по подробнее, куда его вставить.
И поправьте если я ошибся, суть данной проверки для бота это его источник?
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Забавно, я делаю так же) В акшен у меня деза, а реальный запрос идет на другую страницу, при этом адрес страницы зашифрован частями совсем не очевидным способом и генерируется на лету, когда пользователь выполняет какие-то действия, например, нажимает инпуты, скролит страницу и т. д. Ведь вполне очевидно, что если форма заполнена без единого клика на странице и без скрола, это явная лажа.
Ну вот еще одно подтверждение эффективности по подмене action. Думаю сосредоточиться на этом. Но минус конечно в обновлении плагина.

Ух если получится, опишу тут все подробно. И просьба ко всем, ребята давайте будем проще, пишите подробнее ибо ваши идеи хороши, вот только очень трудно изобретать велосипед, который вы уже сделали.
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Так как это самое простейшее, ну не может же он заранее видеть обработчик. Видит только код, значит сейчас найду этот CSS и сменю его, а так же перекину это поле в середину формы и замаскирую ее под... к примеру отчество или тему вопроса.
А адрес обработчика сменили? Он ведь теперь уже может постить сразу на обработчик, не анализируя форму.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
А адрес обработчика сменили? Он ведь теперь уже может постить сразу на обработчик, не анализируя форму.
Еще нет, только приступаю к этому.
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Тоже классная идея, но и главная простая. Только мне до конца еще не понятен сам процесс, точнее затрудняюсь выполнить эти действия. Переживаю что как сильно это все же затронет плагин, так сильно хроноворм я еще не ковырял. А этот способ был применен случаем не на хронаворм? (ну так, а вдруг  ;D)
Не на хромоформе. На кастомных формах. Но можно и на хроноформе. Сделайте 2 почти одинаковые формы. Первую показывайте на сайте, но ее обработчик должен быть фиктивным. Добейтесь того, чтобы он ничего не делал (не отправлял и не сохранял в БД). Просто пусть сообщает в ответ, что все успешно отправлено. И все.
А вторую форму сделайте почти такой же, только добавьте 1-2 поля, но нигде ее не выводите на сайте. Просто чтоб ссылка обработчика была. Это будет та, на которую будет отправлять скрипт (аяксом или подменой в action). Дополнительные поля создавайте/добавляйте тоже JS-ом и проверяйте их наличие во втором обработчике (по идее просто сделать поля обязательными). Должно работать.

Есть и другие несложные решения, но они требуют внесения правок в обработчик (или целиком кастомный обработчик). Лучше всего комбинировать несколько решений.
« Последнее редактирование: 26.03.2020, 13:32:23 от sivers »
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Не на хромоформе. На кастомных формах. Но можно и на хроноформе. Сделайте 2 почти одинаковые формы. Первую показывайте на сайте, но ее обработчик должен быть фиктивным. Добейтесь того, чтобы он ничего не делал (не отправлял и не сохранял в БД). Просто пусть сообщает в ответ, что все успешно отправлено. И все.
А вторую форму сделайте почти такой же, только добавьте 1-2 поля, но нигде ее не выводите на сайте. Просто чтоб ссылка обработчика была. Это будет та, на которую будет отправлять скрипт (аяксом или подменой в action). Дополнительные поля создавайте/добавляйте тоже JS-ом и проверяйте их наличие во втором обработчике (по идее просто сделать поля обязательными). Должно работать.
Простая идея в миг превратилась в трудную  :(
Во первых вот так выглядит акшен:
<form action="https://адрес сайта/?chronoform=zakaz-consult&amp;event=submit" method="post" name="zakaz-consult" id="zakaz-consult" data-id="zakaz-consult" class="ui form G2-form" data-valloc="inline" enctype="multipart/form-data" data-dtask="send/self" data-result="replace/self" data-subanimation="1">
Пока не понятно как его и на что менять.

Во вторых... мне не хватает практики и знаний в создании поддельного ответа об отправке формы.

В третьих, я могу поставить скрытую форму над той формой которую долбит бот и сделать так что отправка проходить не будет.

Короче как то резко все усложнилось, но руки не опускаем, щас чет придумаю.
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
1. Просто добавьте на страницу скрипт (после формы) такого содержания:
Код
<script>
document.getElementById('zakaz-consult').setAttribute('action', 'https://адрес сайта/?chronoform=zakaz-consult-double&amp;event=submit')
</script>

2. Тут надо только отключить оправку. Ответ у формы есть и без того. Т.е. настроить на "ничего не делать" с пришедшими данными.

3. Не надо публиковать даже в скрытом виде. Вторую форму (под именем zakaz-consult-double) просто создайте в админке или скопируйте первую и ничего больше с ней не делайте. Только не блокируйте в ней отправку.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
<script>
document.getElementById('zakaz-consult').setAttribute('action', 'https://адрес сайта/?chronoform=zakaz-consult-double&amp;event=submit')
</script>
О! ЧЕРТ. Как элегантно, обязательно попробую этот варик. Отпишусь.
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
1. Просто добавьте на страницу скрипт (после формы) такого содержания:
Код
<script>
document.getElementById('zakaz-consult').setAttribute('action', 'https://адрес сайта/?chronoform=zakaz-consult-double&amp;event=submit')
</script>

2. Тут надо только отключить оправку. Ответ у формы есть и без того. Т.е. настроить на "ничего не делать" с пришедшими данными.

3. Не надо публиковать даже в скрытом виде. Вторую форму (под именем zakaz-consult-double) просто создайте в админке или скопируйте первую и ничего больше с ней не делайте. Только не блокируйте в ней отправку.
>:( Вариант не сработал. перенаправление срабатывает, это видно по ссылке после нажатия кнопки отправить. Но почта не приходит. И в консоле пишет кучу ошибок. Честно, даже не думал что этот вариант даст осечку, но FAQ есть факт - хроноформ от таких действий защищен.
*

markizmds

  • Захожу иногда
  • 62
  • 2 / 0
Сделал хак в модуле- делаем проверку на наличие http or https , проверяйте, пользуйтесь .
 
Код
	$event = G2\L\Request::data('event', '');
// Start OlegK
$message = G2\L\Request::data('message', '');
if (!empty($message)) {
if (preg_match("/(http|https)/i", $message)) {
$app = JFactory::getApplication();
$app->redirect(JURI::Current(), 'No Spam', 'error');
}
}
// END
if(!empty($event)){
Что то подобное находил на просторах рунета. Попробовал и добавил данный код на страницу, в итоге форма перестала работать напрочь.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Регистрация и авторизация через соц сети

Автор DamaVbubi

Ответов: 3
Просмотров: 264
Последний ответ 14.04.2024, 16:15:05
от Гоша_Компьютерный
Cайт через браузер недоступен

Автор rezchik

Ответов: 0
Просмотров: 326
Последний ответ 01.04.2023, 10:49:08
от rezchik
Редактирование title через страницу

Автор toxic_rain

Ответов: 1
Просмотров: 310
Последний ответ 28.02.2023, 11:54:28
от sivers
Свои позиции через grid

Автор androv77

Ответов: 0
Просмотров: 349
Последний ответ 21.11.2022, 16:45:05
от androv77
Привязка материала к метке через запрос к БД

Автор sk8work

Ответов: 4
Просмотров: 513
Последний ответ 14.10.2022, 13:24:55
от sk8work