Меню

Joomla callback ошибка защиты от спама

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

  • 10 Ответов
  • 1349 Просмотров

Всем привет! Такая ситуация — форма обратной связи с капчей отправляет письма нормально только когда она стоит в позиции модуля в полный рост. А вот клон формы во всплывающем окне при отправке пишет — «Ошибка защиты от спама». Разве Lightbox как то может мешать капче? Покупал модуль на сайте joomly ru, тех поддержка молчит, а дедлайн уже пришел. В чем может быть дело? *ОХ-Х-Х*

Ошибок в консоли нет?

Есть пару ошибок, но они относятся к шрифтам

Кажется начинаю понимать в чем причина. Сайт до этого был сделан на тестовом поддомене а после перенесен на основной. Как полностью разберусь — отпишусь

Кажется начинаю понимать в чем причина. Сайт до этого был сделан на тестовом поддомене а после перенесен на основной. Как полностью разберусь — отпишусь

Мда.. дело не в этом. Никак не врублюсь в чем дело. Модуль обновил, кэш почистил что в админке что на хосте. Модуль Contactus

Решено! Разработчик модуля решил проблему. Сегодня им писал, сегодня же и ответили и решили проблему за что им большое спасибо!  ^-^

Ссылку оставлять не буду, что бы не подумали что реклама. Просто советую — модуль контактных форм Contactus от Joomly

Решено! Разработчик модуля решил проблему. Сегодня им писал, сегодня же и ответили и решили проблему за что им большое спасибо!  ^-^

Так в чем все же проблема была? Или они просто обновили и не раскрыли «секрет», где ошибка сидела?

Решено! Разработчик модуля решил проблему. Сегодня им писал, сегодня же и ответили и решили проблему за что им большое спасибо!  ^-^

Поделитесь, пожалуйста, секретом, что было в итоге? Сейчас разработчик не отвечает, а проблема 1 в 1, как у вас.. 

Такая же проблема  «ЗАКАЗАТЬ ОБРАТНЫЙ ЗВОНОК»
Ошибка защиты от спама…….Как бороться??

Содержание

  1. Добавление любых дополнительных полей в форму обратной связи Wedal Joomla Callback
  2. Стандартный и измененный вид формы. Постановка задачи
  3. Шаг 1. Создаем альтернативные макеты формы и письма
  4. Шаг 2. Добавляем дополнительные поля в форму
  5. Шаг 3. Добавляем значения дополнительных полей в письмо
  6. Теоретическая возможность отправки спама через ваш сайт с использованием формы обратной связи Joomla
  7. Стандартная форма обратной связи Joomla
  8. Отправка спама от имени сайта с использованием формы обратной связи Joomla
  9. Как защититься от этой уязвимости?
  10. Как защитить форму обратной связи от спама?
  11. 1. Проверка сессии.
  12. 2. Включаем рекапчу.
  13. Создание формы обратной связи стандартными средствами Joomla.
  14. Создание формы обратной средствами Joomla. Компонент «Контакты».
  15. Компонент «Контакты». Добавление контакта.
  16. Компонент «Контакты». Добавление пункта меню контакта.
  17. Создание формы обратной средствами Joomla. Защита от спама.

Добавление любых дополнительных полей в форму обратной связи Wedal Joomla Callback

Если вы являетесь постоянным читателем wedal.ru, но наверняка уже знакомы с бесплатным и очень удобным модулем обратной связи Wedal Joomla Callback.

Этот модуль позволяет добавлять простые и легкие формы обратной связи в разные части вашего Joomla-сайта. Формы как всплывающие, так и встроенные.

В форме существует ограниченный набор полей для заполнения (имя, email, телефон, комментарий) и многие пользователи спрашивали, можно ли добавить дополнительные поля в форму.

Да, это возможно. И в данном кейсе я расскажу, как именно это можно сделать. Используя описанную здесь технику, вы сможете добавить в форму любое количество полей любых типов без хаков, а затем получить их в письме.

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

Стандартный и измененный вид формы. Постановка задачи

Для начала сформулируем задачу.

Стандартный максимальный набор полей формы обратной связи в модуле Wedal Joomla Callback выглядит следующим образом:

Предположим, что нам требуется более сложная форма, вот такая:

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

Ниже 3 шага, описывающие решение этой задачи.

Шаг 1. Создаем альтернативные макеты формы и письма

Wedal Joomla Callback позволяет нам использовать всю мощь системы альтернативных макетов Joomla. Мы можем создать для одного модуля любое количество разных макетов формы и письма. Поскольку мы хотим создать нестандартную форму, то правильнее всего будет создать для нее альтернативный макет.

Создать альтернативный макет очень просто. Идем в папку:

/modules/mod_wedal_joomla_callback/tmpl/

и копируем из нее все файлы в:

/templates/ваш_шаблон/html/ mod_wedal_joomla_callback/

Там всего 4 файла:

  • default.php
  • default_embeddedform.php
  • default_message.php
  • default_popupform.php

Если вам не нужны сразу и встроенная и всплывающая формы, то можно скопировать один из двух файлов: default_embeddedform или default_popupform.

После переноса файлов макетов в шаблон необходимо переименовать их, заменив «default» на любое другое слово, написанное английскими буквами. Допустим, это будет «equipment». Также предположим, что нам нужна только встроенная форма обратной связи (а значит, макет popupform можно пропустить).

Таким образом, у нас в папке:

/templates/ваш_шаблон/html/ mod_wedal_joomla_callback/

будет такой набор файлов:

  • equipment.php
  • equipment_embeddedform.php
  • equipment_message.php

Чтобы модуль использовал именно альтернативные макеты, нужно у него в настройках перейти на вкладку «Дополнительно» и в поле «Альтернативный макет» выбрать «equipment»:

После этих действий модуль будет использовать именно наши новые макеты. Можно перейти к их правке для подключения дополнительных полей.

Шаг 2. Добавляем дополнительные поля в форму

Для добавления дополнительных полей в форму нам нужно будет отредактировать альтернативный макет equipment_embeddedform.php. Если бы форма требовалась не встроенная, а всплывающая, то мы бы редактировали макет с постфиксом _popupform (надеюсь, это понятно и далее не возвращаюсь к этому уточнению).

Все, что нам нужно сделать – добавить в код макета html-разметку для дополнительных полей. Формат этой разметки может быть любым. Вот здесь вы сможете посмотреть примеры html-кода для полей разных типов:

Нас для поставленной задачи интересует 2 типа полей:

  • текстовое поле для ввода роста и веса
  • чекбоксы для выбора мест

Для роста и веса html-код полей будет таким:

Для чекбоксов выбора мест html-код будет таким:

Давайте подробнее рассмотрим этот код:

  • Оберткиdiv не являются обязательными и добавлены только для удобства оформления
  • Тегиlabel также не являются обязательными и добавлены для отдельного вывода заголовков полей
  • Теги полейinput – единственные элементы, являющиеся обязательными в этом коде
  • У тегов input обязательно должен быть атрибут name, т.к. именно по нему мы будем идентифицировать поле. Названия полей в атрибуте name могут быть любыми, но важно, чтобы они не повторялись в нескольких полях.
  • Конструкция WJCForm _ настоятельно рекомендуется, хотя и не является обязательно в некоторых случаях. Поясню. Если вы не планируете использовать несколько одинаковых форм на одной странице, то включать ID-модуля в названия и идентификаторы полей необязательно. Но все-таки лучше их добавить. Ведь кто знает, куда вас заведет извилистая дорожка веб-разработки…J

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

После выполнения этого шага форма на сайте уже приобретет нужный вам вид. Останется только получить и вывести значения новых полей в макете письма.

Шаг 3. Добавляем значения дополнительных полей в письмо

Для добавления значений новых полей в письмо нам нужно отредактировать альтернативный макет equipment_message.php. Мы получим в нем значения полей и выведем их в нужном месте письма.

Здесь тоже все максимально тривиально. Для получения значений полей вставляем в начале макета, после строчки:

Разберем этот код. Здесь мы просто получаем и записываем в переменные данные из отправленной формы. Важно подставить корректные имена полей и, если вы хотите валидировать поля, то тип фильтра.

Подробнее об этом можно почитать здесь:

Далее, выводим в письме наши переменные в том месте, где хотим:

По этому коду не должно быть вопросов.

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

Источник

Теоретическая возможность отправки спама через ваш сайт с использованием формы обратной связи Joomla

Не так давно я столкнулся с действующим методом, который позволяет злоумышленнику отправлять спам от имени вашего сайта, используя форму обратной связи Joomla (форму контакта). Эта возможность не является уязвимостью, и вряд ли будет исправлена. В этой статье я расскажу о том, как такое стало возможно, и что нужно делать, чтобы защитить свой сайт.

Стандартная форма обратной связи Joomla

В Joomla есть довольно мощный и гибкий компонент, который называется «Контакты». Это стандартный компонент Joomla. Он есть на каждом сайте, т.к. устанавливается вместе с CMS. Данный компонент позволяет создавать и выводить на сайт категории контактов, контакты, формы обратной связи, позволяющие связаться с тем или иным контактом. Контакт – это, условно, пользователь – человек с сайта.

Когда-то я писал статью о том, как можно создать на сайте форму обратной связи стандартными средствами Joomla. Данная инструкция актуальна и сейчас. Она позволяет создать вполне себе годную форму обратной связи без установки сторонних расширений. Отправка спама возможна, когда используется именно эта форма, а также, при одновременном стечении некоторых обстоятельств, о которых пойдет речь ниже.

Отправка спама от имени сайта с использованием формы обратной связи Joomla

Вы удивитесь, насколько прост обнаруженный способ отправки спама от имени сайта. Чтобы он был возможен, форма обратной связи должна выглядеть примерно так:

Т.е. должны выполняться два условия:

  1. Форма не защищена от спам-ботов (не подключена reCaptcha или какой-либо другой способ защиты формы)
  2. В настойках контакта активирована опция «Отправлять отправителю копию письма». Благодаря ей в контактной форме появляется соответствующий чекбокс (см. рисунок выше).

Если хотя бы одно из этих условий не выполняется, проблем не будет. Если же выполняются оба условия, то, как говориться, следите за руками:

  1. Спам-бот находит контактную форму. Защиты от спама нет – можно использовать.
  2. Спам-бот определяет, что сайт на Joomla, и что используется стандартная форма контактов. Удивительно, но есть боты, которые прекрасно умеют это делать.
  3. Спам-бот видит наличие чекбокса отправки копии письма отправителю.
  4. Спам-бот подставляет в поле Email адрес из собственной базы спам-рассылки, поле сообщения заполняет спамом. Как заполнены остальные поля неважно.
  5. Спам-бот отправляет форму и повторяет процесс многократно, подставляя все новые и новые адреса из собственной базы в поле Email.

Что происходит в результате? Joomla думает, что форму заполнил человек, который указал свой реальный адрес и хочет связаться с контактом с сайта. Поскольку галочка отправки копии письма установлена, то письма от сайта получают двое: человек, чей адрес привязан к контакту, и человек, чей адрес введен в поле Email.

Таким образом, подставляя в поле Email разные адреса, можно отправить тысячи сообщений от имени вашего сайта. Да, возможно контакт увидит это, быстро поймет, в чем дело, и прикроет лазейку, но очень велика вероятность, что этого не произойдет.

Последствия от такой атаки для сайта и бизнеса могут быть крайне неприятными, особенно когда чтобы раскрутить сайт уже вложено много денег. Если с адреса вашего домена рассылается спам, думаю не нужно объяснять, какой будет реакция его получателей.

Как защититься от этой уязвимости?

Как защититься от этой уязвимости? Элементарно. Сделайте так, чтобы одно из условий, описанных выше, не выполнялось, а именно:

  • Подключите reCaptcha к форме обратной связи Joomla (здесь есть инструкция)
  • Отключите в настройках контакта опцию «Отправлять отправителю копию письма»

После этого можете спать спокойно. =)

Надеюсь, данная инструкция поможет кому-то сделать свой Joomla-сайт чуточку безопаснее. Не забывайте про основные заблуждения, угрожающие безопасности вашего сайта. Следите за обновлениями и регулярно делайте резервные копии.

Источник

Как защитить форму обратной связи от спама?

Часто в Joomla, в качестве формы обратной связи используется стандартный компонент контактов.

Для этого нужно создать новый контакт и вывести его через пункт меню.
Подробнее смотрите в этом видео >>

Эта форма хороша тем что после отправки сообщения пользователем, может перенаправлять на определённый URL адрес.
Например на страницу «Спасибо» и т.п.

Также хороша тем, что её можно защитить от спам ботов, которыми переполнен весь Рунет.

Поэтому в данной заметке рассмотрим как защитить стандартную форму от ботов.

1. Проверка сессии.

Самое первое, это включить проверку сессии.
Обычно она уже включена.

Боты не могут сохранять куки, а значит и не могут поддерживать сессии.
Конечно, технологии не стоят на месте, и некоторые боты вроде как научились работать с сессиями.
Но и на них управа найдётся.

2. Включаем рекапчу.

Стандартно в Joomla уже есть плагин капча — Рекапча.
Это сервис от Гугл, который помогает фильтровать ботов.

Чтобы использовать этот плагин, нужно зарегистрироваться в сервисе рекапча >>

Для этого просто можно иметь аккаунт Google.
Далее нужно добавить сайт и получить публичный и приватный ключ.

Эти ключи нужно указать в настройках плагина рекапча и выбрать версию 2.0

После этого сохраняем настройки и переходим к общим настройкам Joomla.
Система — Общие настройки.

И выбираем в качестве капчи Captcha — reCaptcha

Готово!
Теперь форма обратной свзяи защищена от роботов при помощи рекапчи от Google.

Конечно, способов защиты ещё много, можно даже обойтись и без капчи, поэтому вопрос.

Вопрос к вам:

Используете ли вы стандартную джумловскую форму обратной связи?
Если нет, то почему?
Может быть есть смысл в её доработке?

Источник

Создание формы обратной связи стандартными средствами Joomla.

Одним их наиболее востребованных элементов сайта была и остается форма обратной связи. Она представляет собой удобный способ установления контакта посетителей с владельцем сайта. Многие веб-мастера устанавливают себе сторонние расширения для организации формы обратной связи, но мало кто знает, что создать ее можно и стандартными средствами Joomla. Это гораздо правильнее, поскольку каждое стороннее расширение требует отдельного обновления и отслеживания уязвимостей. В этой статье я расскажу о том, как создать форму обратной связи, защищенную от спама, с помощью стандартных средств Joomla.

Иногда бывает так, что вы давно уже знакомы с Joomla и вроде бы знаете эту CMS достаточно хорошо, но в один прекрасный день обнаруживаете новую возможность, которая все это время имелась в Joomla, но вы о ней даже не подозревали. Точно также получается и с формой обратной связи – она есть, но найти ее довольно непросто.

Помимо стандартной формы обратной связи советую попробовать мой модуль Wedal Joomla Callback. Он бесплатен и позволяет загружать и отправлять форму обратной связи без перезагрузки страницы.

Создание формы обратной средствами Joomla. Компонент «Контакты».

Скажите честно, сколько раз вы пытались разобраться со стандартными компонентами Joomla, которые доступны сразу после ее установки? Не знаю почему, но ассоциации такие, что это простейшие, базовые вещи, которые вряд ли когда-то понадобятся. На самом деле бывает наоборот.

В Joomla есть стандартный компонент с названием «Контакты». Легко понять, что он позволяет показать на сайте список контактов владельцев сайта, менеджеров и.т.д. Вы скажете: «Ну и зачем разбираться с целым компонентом, если можно просто создать статью, указав в ней необходимые контактные данные?». Во многом вы будете правы. Но, к сожалению, поступив именно так, вы никогда не узнаете, что компонент «Контакты» позволяет создать отдельную форму обратной связи для каждого контактного лица. Уже интереснее?

На сайте Wedal.ru вы можете увидеть пример такой формы:

Как видите, все необходимое для связи имеется. Этой формой посетители пользуются достаточно часто. Как ее создать?

Компонент «Контакты». Добавление контакта.

Переходим в «Компоненты» –> «Контакты» и добавляем новый контакт.

Появится следующая форма:

Здесь вы указываете имя контакта, и выбираете пользователя, который будет связан с контактом. Обычно это администратор.

В поле «Дополнительная информация» можете указать какой-то текст, который требуется показать на странице контакта.

Во вкладке «Детали контакта» не заполняем ничего.

Во вкладке «Настройки отображения» скрываем все лишнее:

Во вкладке «Форма обратной связи» показываем форму:

Компонент «Контакты». Добавление пункта меню контакта.

После того, как контакт создан, необходимо показать его на сайте. Для этого создаем в меню пункт «Контакты» или «Обратная связь» и выбираем для него тип «Контакты» –> «Контакт»:

После этого в появившейся справа форме выбираем созданный нами контакт:

На этом все. Можно смотреть на нашу форму на сайте.

Важно! Обязательно проверьте работоспособность полученной формы обратной связи. Иногда, из-за неправильных настроек отправления писем, почта не отправляется. Это ошибка не формы контактов, а настроек Joomla по работе с почтой (смотрите общие настройки Joomla).

Создание формы обратной средствами Joomla. Защита от спама.

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

Как защитить форму обратной связи от спама? В Joomla 2.5 имеется поддержка наверное самой лучшей капчи(код с картинки) reCAPTCHA. Алгоритм ее активации следующий:

1) Получение ключей. Чтобы получить ключи активации, нужно перейти на страницу http://www.google.com/recaptcha/whyrecaptcha и нажать кнопку «Sign Up Now». Вам будет предложено авторизоваться в аккаунте Google(сервис reCaptcha принадлежит Google). Если такового нет, то придется зарегистрировать. После авторизации вас попросят ввести адрес сайта:

И после этого будут сгенерированы два ключа.

Вся процедура получения ключей и пользования ими бесплатна.

2) Идем в менеджер плагинов сайта и находим там плагин «CAPTCHA — reCAPTCHA».

В его настройках видим поля для ввода ключей:

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

3) Переходим в компонент контактов и открываем настройки:

В опции «Включить CAPTCHA» выбираем «CAPTCHA — reCAPTCHA». Сохраняем. Готово. Теперь капча появится в нашей форме обратной связи.

Кстати, reCAPTCHA может использоваться не только в форме обратной связи, но и при регистрации пользователей (активируется в настройках менеджера пользователей).

На этом всё. Потратив 5 минут, можно создать простую и удобную форму обратной связи для вашего Joomla-сайта, не прибегая к использованию сторонних расширений.

Источник

Создание формы обратной связи стандартными средствами Joomla.

Одним их наиболее востребованных элементов сайта была и остается форма обратной связи. Она представляет собой удобный способ установления контакта посетителей с владельцем сайта.  Многие веб-мастера устанавливают себе сторонние расширения для организации формы обратной связи, но мало кто знает, что создать ее можно и стандартными средствами Joomla. Это гораздо правильнее, поскольку каждое стороннее расширение требует отдельного обновления и отслеживания уязвимостей.  В этой статье я расскажу о том, как создать форму обратной связи, защищенную от спама, с помощью стандартных средств Joomla.

Иногда бывает так, что вы давно уже знакомы с Joomla и вроде бы знаете эту CMS достаточно хорошо, но в один прекрасный день обнаруживаете новую возможность, которая все это время имелась в Joomla, но вы о ней даже не подозревали. Точно также получается и с формой обратной связи – она есть, но найти ее довольно непросто.

Помимо стандартной формы обратной связи советую попробовать мой модуль Wedal Joomla Callback. Он бесплатен и позволяет загружать и отправлять форму обратной связи без перезагрузки страницы.

Скажите честно, сколько раз вы пытались разобраться со стандартными компонентами Joomla, которые доступны сразу после ее установки? Не знаю почему, но ассоциации такие, что это простейшие, базовые вещи, которые вряд ли когда-то понадобятся. На самом деле бывает наоборот.

В Joomla есть стандартный компонент с названием «Контакты». Легко понять, что он позволяет показать на сайте список контактов владельцев сайта, менеджеров и.т.д. Вы скажете: «Ну и зачем разбираться с целым компонентом, если можно просто создать статью, указав в ней необходимые контактные данные?». Во многом вы будете правы. Но, к сожалению, поступив именно так, вы никогда не узнаете, что компонент «Контакты» позволяет создать отдельную форму обратной связи для каждого контактного лица. Уже интереснее?

На сайте Wedal.ru вы можете увидеть пример такой формы:

joomla-feedback-form

Как видите, все необходимое для связи имеется. Этой формой посетители пользуются достаточно часто. Как ее создать?

Компонент «Контакты». Добавление контакта.

Переходим в «Компоненты» –> «Контакты» и добавляем новый контакт.

Появится следующая форма:

joomla-feedback-form

Здесь вы указываете имя контакта, и выбираете пользователя, который будет связан с контактом. Обычно это администратор.

В поле «Дополнительная информация» можете указать какой-то текст, который требуется показать на странице контакта.

Во вкладке «Детали контакта» не заполняем ничего.

joomla-feedback-form

Во вкладке «Настройки отображения» скрываем все лишнее:

joomla-feedback-form

Во вкладке «Форма обратной связи» показываем форму:

joomla-feedback-form

Сохраняем.

Компонент «Контакты». Добавление пункта меню контакта.

После того, как контакт создан, необходимо показать его на сайте. Для этого создаем в меню пункт «Контакты» или «Обратная связь» и выбираем для него тип «Контакты» –> «Контакт»:

joomla-feedback-form

После этого в появившейся справа форме выбираем созданный нами контакт:

joomla-feedback-form

И сохраняем.

На этом все. Можно смотреть на нашу форму на сайте.

Важно! Обязательно проверьте работоспособность полученной формы обратной связи. Иногда, из-за неправильных настроек отправления писем, почта не отправляется. Это ошибка не формы контактов, а настроек Joomla по работе с почтой (смотрите общие настройки Joomla).

Создание формы обратной средствами Joomla. Защита от спама.

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

Как защитить форму обратной связи от спама? В Joomla 2.5 имеется поддержка наверное самой лучшей капчи(код с картинки) reCAPTCHA. Алгоритм ее активации следующий:

1) Получение ключей. Чтобы получить ключи активации, нужно перейти на страницу http://www.google.com/recaptcha/whyrecaptcha и нажать кнопку «Sign Up Now». Вам будет предложено авторизоваться в аккаунте Google(сервис reCaptcha принадлежит Google). Если такового нет, то придется зарегистрировать. После авторизации вас попросят ввести адрес сайта:

joomla-feedback-form

И после этого будут сгенерированы два ключа.

Вся процедура получения ключей и пользования ими бесплатна.

2) Идем в менеджер плагинов сайта и находим там плагин «CAPTCHA — reCAPTCHA».

В его настройках видим поля для ввода ключей:

joomla-feedback-form

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

3) Переходим в компонент контактов и открываем настройки:

joomla-feedback-form

joomla-feedback-form

В опции «Включить CAPTCHA» выбираем «CAPTCHA — reCAPTCHA». Сохраняем. Готово. Теперь капча появится в нашей форме обратной связи.

Кстати, reCAPTCHA может использоваться не только в форме обратной связи, но и при регистрации пользователей (активируется в настройках менеджера пользователей).

На этом всё. Потратив 5 минут, можно создать простую и удобную форму обратной связи для вашего Joomla-сайта, не прибегая к использованию сторонних расширений.

Об авторе

Об авторе

Wedal (Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.

Основной профиль – создание сайтов и расширений на CMS Joomla.

  • Об авторе
  • Портфолио
  • Услуги
  • Контакты

Как защитить форму обратной связи от спама?

25.05.2019 |

Категория Веб-разработка

Часто в Joomla, в качестве формы обратной связи используется стандартный компонент контактов.

Для этого нужно создать новый контакт и вывести его через пункт меню.
Подробнее смотрите в этом видео >>

Эта форма хороша тем что после отправки сообщения пользователем, может перенаправлять на определённый URL адрес.
Например на страницу «Спасибо» и т.п.

Также хороша тем, что её можно защитить от спам ботов, которыми переполнен весь Рунет.

Поэтому в данной заметке рассмотрим как защитить стандартную форму от ботов.

1. Проверка сессии.

Самое первое, это включить проверку сессии.
Обычно она уже включена.

Боты не могут сохранять куки, а значит и не могут поддерживать сессии.
Конечно, технологии не стоят на месте, и некоторые боты вроде как научились работать с сессиями.
Но и на них управа найдётся.

2. Включаем рекапчу.

Стандартно в Joomla уже есть плагин капча — Рекапча.
Это сервис от Гугл, который помогает фильтровать ботов.

плагин рекапча для защиты формы

Чтобы использовать этот плагин, нужно зарегистрироваться в сервисе рекапча >>

Для этого просто можно иметь аккаунт Google.
Далее нужно добавить сайт и получить публичный и приватный ключ.

Эти ключи нужно указать в настройках плагина рекапча и выбрать версию 2.0

настройка рекапчи в joomla 3

После этого сохраняем настройки и переходим к общим настройкам Joomla.
Система — Общие настройки.

И выбираем в качестве капчи Captcha — reCaptcha 

настройка рекапчи joomla

Готово!
Теперь форма обратной свзяи защищена от роботов при помощи рекапчи от Google.

Конечно, способов защиты ещё много, можно даже обойтись и без капчи, поэтому вопрос.

Вопрос к вам:

Используете ли вы стандартную джумловскую форму обратной связи?
Если нет, то почему?
Может быть есть смысл в её доработке?

Пожалуйста, напишите в комментариях!

P.S.: В связи с блокировкой Роскомнадзора некоторых серверов Google, рекапча и другие его сервисы могут работать с перебоями.

В предыдущей статье я рассказывал как защищать устаревшую джумлу и админку от перебора паролей. Но при этом многие задаются вопросом: «Почему мне приходит спам с моего сайта через установленную на моем сайте форму обратной связи?».

Убрать спам с контактной формы сайта

Убрать спам с контактной формы сайта

На этот раз я расскажу о вариантах защиты всяческих контактных форм и полей конструкторов, калькуляторов — вообщем того, что отправляет письмо администратору сайта. Мало того, что порой неинтересно читать спам или рекламу, которую прислали вместо потенциального клиента, уязвимость форм обратной связи грозит ещё баном от хостинга почтовой службы. И ваши клиенты в этот день уже не смогут отправить вам  заявку.

Поэтому стоит заранее подумать о защите, а не когда заспамят по самое не хочу. Хотя в большинстве случаев владельцы сайтов думают, что сайт никому не интересен и не догадываются, что на них могут выйти боты. Другая половина считает, что лишние поля отпугивают потенциальных посетителей, а в некоторых случаях и слишком сложны для заполнения. В любом случае давайте разбирать подробнее.

Установка капчи на сайт как защита от спама

Чтобы предотвратить массовую отправку данных, следует своевременно позаботиться о защите подписных форм. Конечно, самым действенным вариантом будет установка капчи (captcha) — рисунка, текст или цифры с которого надо будет ввести в отдельное поле для подтверждения, что вы не робот. На данный момент существует огромный выбор разновидностей капчи:

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

— готовые решения от Google, Yandex и других сторонних сервисов. Это не только цифро-буквенные капчи, среди них есть много интересных вариантов, таких как собрать картинку-паззл, выбрать подходящие изображения и т.п.

Recaptcha как универсальная альтернатива всем капчам

С выходом второй версии рекапчи от гугла она кардинально изменилась: сложным, длинным и неразборчивым фразам на смену пришёл поведенческий анализ. Теперь при первых попытках не надо вводить проверочных фраз — достаточно поставить галку подтверждения и проверка пройдена. При подозрительной активности Вам предложат сделать несложные действия, к примеру выбрать изображения с природой или витринами.

Удобство нового метода смогли оценить многие пользователи, поэтому многими разработчиками API рекапчи интегрировано в программный код, необходимо только получить уникальные ключи на домен.

Recaptcha 2 в Joomla

В популярной CMS джумла рекапча реализована системным плагином, поэтому стоит выбрать её в настройках, активировать плагин и ввести полученные ключи. После этого как системные компоненты могут обращаться к гуглокапче (к примеру, регистрация пользователей или стандартная контактная форма), так и различные сторонние модули и расширения (Virtuemart, сторонние контактные формы, Jcomments и другие).

Немного по другому ситуация обстоит в более старых версиях (Joomla 1.5 и 2.5). Максимум там можно найти первую капчу от гугла, но она настолько отпугивает своей сложностью, что стоит подумать или о дописывании своего варианта или решиться на миграцию на последнюю версию.

WordPress и рекапча от гугла

У вордпресса дела обстоят иначе: по умолчанию там в борьбе со спамом предлагается Akismet, который порой очень часто пропускает спам и работает не самым лучшим образом. Recaptcha существует отдельми плагинами, которые могут добавлять защитное поле в комментарии, форму авторизации или регистрации, а также в совместимости с контактной формой. 

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

Поэтому на мой взгляд вп требует допила.

Невидимая Recaptcha

Google анонсировала бета-тестирование нового типа рекапчи — Invisible reCAPTCHA. Как Вы знаете, усовершенствованная версия позволяла отличать ботов от настоящих людей на ранней стадии и предлагала реальным людям нажать простую кнопку. В то же время некоторые раскритиковали необходимость данного действия. Поэтому сейчас есть возможность опробовать новую вариацию — теперь и эту кнопку жать не надо, а рекапча будет сама анализировать момент появления на сайте. С одной стороны это облегчит жизнь пользователям, с другой стороны возможны проколы с пропуском ботов, однако это уже время покажет.

Для того, чтобы поставить новую невидимую рекапчу на сайт, необходимо получить отдельные ключи. Также необходимо реализовать функция обратного вызова (callback) для проверки легитимности. Более подробную информацию можно найти в API, и когда с ним разберусь, постараюсь выложить пример реализации на сайте.

Так как информации получилось много, то я вынес в отдельную статью — Используем невидимую рекапчу на сайте.

Рекапча на произвольном сайте

На самом деле нету ничего сложного в реализации recaptcha в любом модуле или самописной форме обратной связи. На сайте расписано подробное API как реализовать необходимую проверку. С размещением кода на фронтэнде обычно не возникает проблем, однако не все могут корректно отослать запрос проверки секретного ключа.

Поэтому я рассмотрю простой вариант back-end отправки json на php

<?php $recaptcha_secret = "XXXXXXXXXXXXXXXXXXXXXXX"; // Ваш секретный ключ
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$recaptcha_secret."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']);
$response = json_decode($response, true);
if($response["success"] === true)
{
// Здесь должно происходить действие при корректном прохождении проверки
}
else
{
// Иначе выдаем какую-то ошибку
}
?>

Если понадобятся дополнительные действия с апи, то советую изучить документацию.

Защищаем форму обратной связи без капчи

Капча поможет решить нам проблему со спамом, однако многих она раздражает, и многие стараются обходиться без неё. Кроме этого, существуют различные сервисы как антигейт по обходу капчи (там люди за деньги заполняют данные с капчи). Поэтому не лишним будет рассмотреть альтернативные варианты. Для популярных CMS существуют готовые решения, в других случаях придется применить навыки программирования либо обратиться к специалистам.

Итак, я расскажу пару приемов, как повысить защищенность формы без капчи.

Скрытые поля как защита форм

Создаем hidden поля. Достаточно для заполняемых полей (name,phone, email)  в стилях прописать display:none; и дополнительно создать поля с нестандартными атрибутами name (к примеру phone-protect). Обязательно надо изменить код под новые поля и добавить ещё одну проверку: если наши скрытые поля будут заполнены ( или изменены дефолтные значения), тогда будет выдавать ошибку » Спам здесь не пройдет, обнаружен бот».

Этот метод дает большой выбор пофантазировать в вариантах проверок и названий полей, а значит своей нестандартностью защититься от большего количества ботов

Используем cookies для проверки уникальность посетителя

Проверяем cookies. Тут можно создавать разнообразные варианты. При этом с помощью куков можно реализовать проверку на однократное исполнение формы ( К примеру пользователь отправил заявку, и начинает снова и снова заполнять форму обратной связи — вдруг он просто конкурент. А ему в ответ » Вы уже отправили свою заявку»).

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

Фильтрация входящих данных контактных форм обратной связи

Хорошая валидация полей на корректное заполнение является примером тоном правильного программирования. Это не только обезопасит Ваш сайт  от SQL инъекций и XSS-уязвимостей, но с учетом того, что боты заполняют случайными значениями, в большинстве случаев они могут не пройти элементарной проверки на корректный телефон. Как дополнительный вариант можно устроить какую-нибудь самописную подгрузку какой-нибудь проверки на Javascript — чем больше уникальность вашего решения, тем меньше шансов пройти спаму!

Не забудьте проверить, не изменилась ли работоспособность с вашими правками!!! С этими советами можно защитить сайт от спама в формах обратной связи. Ну а в следующей статье я расскажу, как бороться против примитивных DDos-атак и снизить нагрузку на сервер от ботов.

Заказ обратного звонка Joomla

Joomly Callback — это модуль обратного звонка для сайтов на Joomla 2.5 — 3.x. Модуль прост в использовании и имеет подробную видеоинструкцию по настройке. Укажите в опциях рабочее расписание вашей компании, чтобы клиенты заказывали звонки на удобное для вас время. Получайте заказы на электронную почту или свой телефон через смс-сообщения. Благодаря простоте, функциональности, качественному дизайну модуль быстро завоевал популярность у вебмастеров и в настоящее время испольузется более чем на тысяче сайтов.

Модуль обратного звонка Joomla 3

Наши преимущества:

Обработка персональных данных

С 1 июля 2017 вступают в силу поправки в закон о персональных данных. Теперь перед отправкой формы пользователь должен дать согласие на обработку своих данных. Мы добавили в модуль соответствующий чекбокс. Пример текста.

Лицензионность

Модули с пиратских сайтов зачастую наполнены скрытыми ссылками. Это может негативно повлиять на продвижение вашего сайта. С нашим модулем у вас не будет таких проблем.

Простота настройки

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

Цели для аналитики

Все варианты модуля имеют функционал для настройки целей в Google Analytics и Яндекс метрике. Заполните два поля и отслеживайте конверсии.

Рекапча

В качестве капчи в модуле испольузется Recaptcha 2 от Google. Она просто в использовании и обеспечивает лучшую защиту от спама.

«Прилипающая» кнопка вызова

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

Установить и настроить модуль обратного звонка

Скачать модуль обратного звонка

Базовый

0
руб.

  • Настройка полей модуля
  • Отправка сообщений на вашу почту
  • Цели для аналитики
  • Отправка сообщений по sms
  • Копирайт

Полный

290
рублей

  • Настройка полей модуля
  • Отправка сообщений на вашу почту
  • Цели для аналитики
  • Отправка сообщений по sms и telegram
  • Выбор цветового оформления
  • «Прилипающая» кнопка вызова
  • Несколько форм на одном сайте
  • Разовая оплата (без абонентской платы)

Количество скачиваний: 14148


  1. OlegK

    Offline

    OlegK

    Russian Joomla! Team
    Команда форума
    ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    768
    Пол:
    Мужской

    Рекапча включена, но начали приходить письма, и не спам, непонятно в чем прикол.
    Изменил код в плагине рекапча , правда эмэйл писать тоже руками.Оба эмэйл в списке жалоб на спам в выдаче гугла .

    1. $artest = array(‘kacie4wvhul@inbox.ru’, ‘robbyd7jh2@bk.ru’ );
    2.    $test_email  = $input->get(‘jform’, », ‘string’);
    3. //   var_dump($test_email);die(‘Ok’);
    4.      // Discard spam submissions
    5.      if ($spam || in_array( $test_email[1], $artest ) == true)
    6.        throw new RuntimeException(JText::_(‘PLG_RECAPTCHA_ERROR_EMPTY_SOLUTION’));

    Погуглил, еще желательно отключить отсылку копии в настройках контакта .


  2. OlegK

    Offline

    OlegK

    Russian Joomla! Team
    Команда форума
    ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    768
    Пол:
    Мужской

    Есть в общих настройках компонента Контакты- Блокируемый e-mail . Указал через запятую три эмэйл, попробовал один эмэйл- защита не сработала . Правда была включена невидимая рекапча от гугл v.3

    — добавлено: 09.01.2022, первое сообщение размещено: 12.11.2019

    1. <?php // echo JHtml::_(‘form.token’); ?>

    Заменить на JavaScript .Замена кода нужна в файле:и создать переопределение
    components/com_users/tmpl/registration/default.php

    1. <script type=»text/javascript»>    
    2.     jQuery(«form.form-validate»).append(‘<?php echo JHtml::_( ‘form.token’ ); ?>‘);

Поделиться этой страницей


Форумы Joomla! CMS

создание формы обратной связи Добрый день, уважаемые читатели! Продолжаем создавать сайт на Joomla и следующим нашим действием будет создание формы обратной связи и ее защита от спама. Протестировав два компонента для создания формы – компонент Контакты, установленный по умолчанию в Joomla и установив дополнительно бесплатный компонент  aiContactSafe – я пришла к выводу, что не имеет смысла тратить время на установку и настройку каких – либо дополнительных компонентов, а лучше воспользоваться установленной по умолчанию. Поверьте, она ничем не уступает другим, и ее очень просто настроить. Поэтому сегодня будем рассматривать создание формы обратной связи посредством компонента, установленного по умолчанию.

Создавая сайт на любую тематику Вам не обойтись без страницы с контактной информацией, как на одного человека – автора сайта, так и на группу людей или же страницы, с формой обратной связи для отправки сообщений на прикрепленный к ней адрес. Все это поможет воплотить  один бесплатный компонент Контакты.

Настройка Контактов на Joomla

Чтобы приступить к настройкам компонента Контакты нам необходимо зайти в административную панель сайта и выбрать вкладку “Компоненты” — ”Контакты”. В выпавшем окне кликаем по пункту “Категории контактов”

создание формы обратной связи

Дело в том, что добавление контактов очень похоже на добавление статей, то есть чтобы добавить контакты необходимо создать для этого категорию.

На открывшейся странице у Вас не будет создано не одной категории, поэтому мы ее сами создадим кликнув на кнопку “Новый”

создание формы обратной связи

Нам предлагается заполнить два поля “Заголовок” нашей категории и ее ”Псевдоним” и еще обязательно ставим галочку в строке “Опубликовано”

создание формы обратной связи

Сохраняем произведенные настройки, нажав в правом верхнем углу по кнопке “Сохранить”. Категорию создана теперь осталось только создать саму страницу с контактом. Для этого заходим во вкладку “Контакты”

создание формы обратной связи

Где затем нажимаем на кнопку “Новый”, расположенную в правом верхнем углу.

Откроется диалоговое окно, где часть информации указываем обязательно, а часть на свое усмотрение.

Так обязательно заполняем поле Название – где указываем имя контакта или его псевдоним.

В поле Псевдоним указываем имя на латинице.

Ставим галочку в положение “да” в строке Опубликовано, а также указываем к какой категории относится данный контакт. Чуть ниже, в выпадающем окне, “Связь с пользователем” указываем то контактное лицо, кому будет отправляться сообщение, написанное читателем.

создание формы обратной связи

В поле “Информация” обязательно указываем Положение, занимаемое на сайте, и e-mail. Остальные же пункты заполняете по желанию.

Я добавила для примера еще и небольшую картинку, которую предварительно загрузила в папку stories, расположенную в директории Сайт – Медиа менеджер

А вот в разделе “Параметры” ставим галочки там, где хотим чтобы это значение отражались в форме контактов.

Указав все необходимые пункты сохраняем настройки, нажав в правом верхнем углу кнопку “Сохранить”

Добавляем пункт Контакты в меню

После того как мы произвели настройки формы обратной связи необходимо ее вывести на сайт посредством пункта меню. Для этого в административной панели выбираем вкладку “Меню” и в ней выбираем то меню, в котором должен отражаться пункт.

создание формы обратной связи

И создаем в этом меню новый пункт меню, нажав на кнопку “Создать”. Откроется структура типов меню, которое можно создать в Joomla и выбираем Контакты – Страница  контакта

создание формы обратной связи

На открывшейся странице задаем название пункту меню, прописываем его псевдоним, включаем отражение пункта и в Основных параметрах в поле “Выберите контакт” указываем контакт к которому привязываем данный пункт меню.

создание формы обратной связи

Сохраняем настройки и проверяем что получилось.

Итак , в верхнем меню у меня появился пункт контакты

контакт

нажав по которому откроется страница с обратной формы связи

создание формы обратной связи

По идеи форма отражается и все работает отлично и можно было бы на этом остановиться, но…. Дело в том, что у Joomla нет встроенной защиты от добавления спама в форму обратной связи и в форму регистрации. И Вас просто может завалить сообщениями посылаемыми ботами.

Защитить форму контактов от спама

Чтобы этого не произошло предлагаю сразу же на форму контактов установить капчу, а для этого необходимо установить плагин Joomlaxi Captcha.

Плагин устанавливается стандартным образом через панель Расширения – Установка Удаление – Закачать файл пакет.

После успешной установки плагина в панели Плагины появляется новый пункт, Joomlaxi Captcha

Защитить форму контактов от спама

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

Защитить форму контактов от спама

Здесь мне предлагается установить ширину и высоту капчи, а также сколько символов должно отражаться для ввода  (characters). Затем меняю цвет фона с помощью поля background color и цвет шрифта –text color. С помощью поля noise color –задаю цвет шума, а в поле font to use устанавливаю стиль отражения капчи. Можно также изменить и размер шрифта.

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

На этом я сегодня завершу создание сайта на Joomla. Всем удачи и до новых встреч на блоге “Seo записки отчаянной”

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Java lang illegalstateexception как исправить ошибку
  • Java lang illegalargumentexception minecraft ошибка