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

Содержание

Защита формы обратной связи от спама на WordPress и ContactForm

Эту статью стоит читать, если на следующие вопросы вы ответите “да”:

  • У вас есть сайт на WordPress и Contact Form 7?
  • Вы не хотите использовать капчу?
  • Вас достал спам, идущий в ящик?

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

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

Защита формы от спама: начинаем практику

Прежде всего нам необходимо добавить скрытое поле ко всем наши формам, реализованным на Contact Form 7. Для этого выполняем следующий порядок действий:

Защита формы обратной связи от спама на PHP и JavaScript

  1. В левом меню щелкаем Contact Form 7 (Рисунок 1).
  2. Заходим поочередно в каждую форму, используемую у вас на сайте (Рисунок 1).

Рисунок 1. Заходим в каждую форму.

  1. Добавляем код [hidden your-check-bot] к каждой форме (Рисунок 2). Теоретически не важно, куда вставлять этот код. Но я придерживаюсь мнения, что лучше его вставить до тега submit.

Рисунок 2. Добавляем скрытое поле.

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

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

Сначала немного общей информации.

У WordPress в каждой теме есть некий файл functions.php, в который можно внести свой собственный PHP-код.

А у Contact Form 7 есть ряд возможностей по работе с хуками, которые добавляют ей функциональности.

Поэтому мы сейчас внесем небольшой код в файл functions.php, который добавит необходимую нам функциональность.

1. Находим functions.php

а) Внести корректировки можно через админку сайта, если у вас настроены соответствующие разрешения на файлах, что само по себе не очень безопасно. Как найти файл через админку, смотрите на Рисунке 3.

Рисунок 3. Защита форм от спама.

b) Второй способ — использовать FTP. Для этого заходим в корневую директорию вашего сайта, далее папка wp-content, далее themes, далее папка с вашей темой для сайта, и в ней уже находим файл functions.php.

2. Осталось лишь прописать логику работы. Уважаемые читатели, автор — не программист, а честно нашел этот код где-то на просторах интернета, скорее всего, здесь (но это не точно), и слегка его отредактировал. Если вы супер-пупер прогер, и этот код заставляет шевелиться ваши волосы не только на голове, то пишите мне в FB, мы поменяем код, ссылку на вас поставим здесь.

Итак, вы просто берете файл functions.php и после кода

function wpds_validate_bot($result, $tags) if (!empty($_POST[‘your-check-bot’])) return false;
>
return $result;
>
add_filter(‘wpcf7_validate’, ‘wpds_validate_bot’, 10, 2);

Как сделать ярлык на интернет сайт

Сохраняете файл. Наслаждаетесь отсутствием спама.

Послесловие

Запомните, что этот код применяется ко всем формам на вашем сайте. Поэтому если в какую-то форму вы не поставите скрытое поля, то сообщение вам просто не придет.

Если вы хотите получать уведомления о наших новых статьях максимально оперативно, то подписывайтесь на наш канал в телеграм. Мы публикуем только полезный контент по SEO, например, статьи про показатели E-A-T, оценку качества контента или SEO-эксперимент о том, зачем нужен H1 и сколько их может быть на странице.

Источник

Защита формы обратной связи от спама на PHP и JavaScript

Спам не пройдет

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

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

Телеграм-канал serblog.ru

Защита формы от спама. Теория

Что бы будем делать?

  • Добавим к форме input с типом hidden и пустым значением (value)
  • По нажатию на кнопку отправки данных формы будем подставлять какое-то значение в скрытый input
  • На стороне сервера примем данные из скрытого инпута
  • Сделаем проверку. Если значение скрытого поля не равно тому, что мы в него передали через JS, то форма отправлена не будет.

Как правило боты не делают нажатие на кнопку отправки и это легко проверить, установив в Яндекс Метрике соответствующие цели. Поэтому такой способ должен защитить сайт от спама если не совсем, то ограничить его поступление до минимума. То есть будут приходить сообщения только если живой человек отправит форму самостоятельно, то есть нажмет на кнопку. Итак, приступим. Добавляем в форму скрытое поле:

Защита контактной формы от спама. Практика

В JavaScript пишем следующее:

let code = document.querySelector(‘#code’); // Получаем скрытый input document.querySelector(‘.btn’).onclick = function()< // Клик по кнопке отправки code.value = ‘NOSPAM’; // Подставляем значение в value инпута >;

После клика скрытое поле будет выглядеть примерно так:

Теперь сделаем проверку на PHP.

if ($_POST[‘code’] != ‘NOSPAM’)

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

Интересно, есть-ли у Вас на сайте пример создания ФОС для установки на HTML страницу?

Пока нет. А что это?

Форма обратной связи для заинтересованного посетителя с возможностью обратного звонка. В сети есть примеры платные и бесплатные, рабочие и не рабочие — устаревшие.Часто на одностраничниках, и на моей странице тоже стоят такие ФОС. Хотелость бы иметь современную ФОС без использования БД.

Особенно интересно создать скрипт комментариев с возможностью редакции на таком же одностраничнике. В сети есть аналог такого комментария, но всего ОДИН!

Привлекать сторонние сервисы со своими скриптами, это их реклама и потеря веса. Хотя, я пользуюсь и этим на своих одностраничниках.

Всё дело в том, что ряд моих страниц уже несколько лет стоят в топ 10 по вч запросам и это ощутимо в вопросах бизнеса. В Google, клиенты, не смотря на раздел МОЙ БИЗНЕС, не проявляют желания писать отзывы. Да, и не умеют. А тут же на странице — пожалуйста. Но нет такой возможности.

И ещё такой нюанс, если по вч запросу РЕМОНТ ХОЛОДИЛЬНИКОВ ХАРЬКОВЕ, мой сайт стоит на шестой позиции в поиске Гугла моего региона, заказов 1-2, если вывожу на 3-4 место,
заказов 3-4. Если 1-3 место , заказов море. Поэтому каждое хорошее слово в отзыве играет роль. Извините, написал много, хотел донести.

Как сделать хостинг на своем компьютере для сайта openserver

Отзывы можно реализовать по принципу гостевой книги.

Интересное решение. Учитывая, что на моей странице 80 000 знаков как бы защитится от текстовых ботов на всякий случай. У Вас была публикация по ограничению по буквам записей на JS.

Видимо я и запомнил вашу эту публикацию, что она одна в инете. Спасибо за ваши практики.

От ботов ограничение на JS не спасет. Попробуйте такой вариант.

Спасибо. Буду интепретировать.

о) написал огромный коммент со своим вариантом защиты от ботов, и ничего не опубликовалось. Ладно!

Там ссылка была. Автоматом в спам ушло.

когда создавал защиту от ботов на своем сайте, то использовал следующий алгоритм. Язык PHP.

1. Список 1. Массив со списком HTML сущностей, которых легче всего можно спрятать в токене из рандомных символов.
2. Список 2. Массив со списком декодированных HTML сущностей из списка 1.
3. При открытии страницы формируется рандомный токен из символов »;abcdefghijklmnopqrstuvwxyz;()#%», я использовал сложность 50, т.е. строка на 50 символов.
4. Выбираем случайный элемент из списка 1, и заменяем им случайный символ из токена, предварительно сохранив в сессию НОМЕР_СТРОКИ в токене, в которую мы поместили HTML сущность и НОМЕР_ЭЛЕМЕНТА в массиве списка 1.
5. Помещаем полученный токен в форму на странице.
6. После того, как мы получили токен от формы, получаем соответствующий символ из токена по НОМЕРУ_СТРОКИ и сравниваем его с элементом из списка 2 по НОМЕРУ_ЭЛЕМЕНТА
7. Если они совпадают, значит, форма отправлена человеком.
8. Если нет, значит, форма отправлена роботом.
Принцип защиты основан на том, что браузер всегда декодирует HTML сущности, и одна и та же HTML сущность будет иметь разный вид, в зависимости от того, получена она от браузера или от бота, не использующего браузер.
Пример:
= Бот отправит этот код как есть, состоящий из 7 символов.
¡ = человек отправит этот же код в таком виде.

Токен в 50 символов используется, чтобы не было очевидно, что защита основана на принципе отображения браузером HTML сущностей.
Реализовывал эту защиту на разных сайтах, которые жаловались на спам, и хотели защиту без капчи, включая свой собственный сайт. Ни разу боты не прошли эту защиту.

Источник

Защита от спама для форм обратной связи

Рассказываем, как отсеивать спамные заявки автоматически с помощью сервисов К50

Часть привлечённых лидов неизбежно оказывается спамом. В статье вы узнаете, какие заявки можно считать нерелевантными, и как не тратить время и ресурсы на их обработку.

Почему важно отсеивать спамные заявки

У большинства компаний от 15 до 100% продаж совершается по телефону. В одной из наших предыдущих статей, мы рассказывали, как быстро реагировать на заявки , и почему это важно. Если в реализации ваших товаров и услуг имеет значение каждая секунда, то необходимо учитывать спамные заявки и отсеивать их до принятия в обработку.

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

Какие обращения можно считать спамными?

В сервисе К50 нерелевантными считаются заявки, которые невозможно обработать и конвертировать в продажу по техническим причинам.

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

Чтобы наши клиенты не тратили время и ресурсы на обработку подобных заявок мы боремся с ними на всех уровнях в сервисе К50:Трекер.

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

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

Распознавать голосовую почту

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

Как сделать ответ на письмо в электронной почте

Не позволять оставить номер в некорректном формате

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

Проверять номера по черным спискам

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

Контролировать дубли заявок

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

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

Как сервис К50:Трекер поможет решить эту проблему

Сервис для сбора, анализа и обработки лидов К50:Трекер состоит из трёх модулей:

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

Проверка активности номера в базе операторов (HLR)

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

Если номер считается неактивным, значит кто-то случайно или намеренно оставил в заявке не свой номер. Это может быть частью спам-атаки или фрода (телефонного мошенничества). Если номер найден в чёрных списках, то его также нельзя брать в работу.

Сервис К50 позволяет проставлять на них специальные теги в отчёте по звонкам и настроить сценарии, при которых такие номера будут исключены из дальнейшей обработки.

Детектор голосовой почты

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

  • Номер указан верно, но клиент в данный момент не доступен.
  • Кто-то оставил спамный номер с записью рекламного предложения.

При любом из вариантов обрабатывать такие звонки нерационально. Если у вас подключён модуль Обратный звонок и/или Коллтрекинг К50, то вызов сразу будет заблокирован. Это поможет сэкономить и время операторов коллцентра, и деньги при поминутной тарификации разговоров.

Пример тегирования лидов

Пример тегирования лидов

Также вы сможете тегировать такие номера в отчёте по звонкам. Для чего это нужно?

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

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

Валидация номера телефона на этапе отправки заявки

Сервис К50 проверяет корректность указанного номера и его наличие в реестре Россвязи. Возможности этой опции:

  • Приводит номера, оставленные в заявках, к единому формату.
  • Не сохраняет некорректные номера.

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

Автоматическое формирование чёрного списка

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

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

Пример чёрного списка

Пример чёрного списка

Контроль дублей заявок

Сервис определяет повторные заявки с виджетов (лид-форм) и не позволяет запускать их на повторную обработку. Когда в К50 приходят заявки, вместе с ними передаются параметры сессии (IP-адрес, идентификатор клиента и идентификатор сессии в браузере) и телефон.

Как посмотреть заявление на сайте госуслуги

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

Это позволит защититься от дублей:

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

Установка лимита повторных заявок

Установка лимита повторных заявок

Заключение

Сервис К50:Трекер борется со спамными обращениями на всех этапах получения и обработки лидов. Распознавание и блокировка нерелевантных заявок происходит автоматически во всех модулях сервиса — Коллтрекинге, Обратном звонке и Обработчике лидов.

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

Источник

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

Приходите вы на работу, садитесь проверить почту, рассчитывая увидеть ответ от партнёра, немного спама, а вместо этого видите вот такое: Входящие (164 532).

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

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

В пятницу рабочий день заканчивается в 18.00, предположим в 18.30 офис закрывается на ключ. В понедельник рабочий день начинает в 9.00, ну а открывают офис, к примеру, в 8.00. Итого имеем 61.5 час на то, что бы злоумышленник не опасаясь быстрого разоблачения занялся делом. Предположим он спамит (а сделать это можно даже с помощью браузера) в 10 потоков, т.е. он одновременно может отсылать 10 писем.

Если он будет отправлять письма раз в три секунды, то утром понедельника, в 8.00 мы обнаружим 738 000 писем. Естественно, потоков может быть больше, время между отправками писем меньше, да и компьютеров, вовлечённых в этот процесс может быть десятки, а то и сотни.

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

Также, из печальных последствий, могут возникнуть серьёзные проблемы с хостинг провайдером, на площадке которого размещён ваш сайт. А если сообщение из формы обратной связи уходит на почтовый ящик, который расположен на другой хостинг-площадке (особенно если она бесплатная), то ваш домен может попасть в чёрные списки, из которых выбираться довольно — таки хлопотно.

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

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

Фактически, на сегодняшний день сфера компьютерных преступлений — слабое место в законодательстве РФ (да и в мировом, по большому счету тоже) и пока что не заметно существенных сдвигов в этой области.
На данный момент мы располагаем тремя основополагающими статьями УК РФ, касающимися напрямую данной области.

Глава 28 УК РФ.
Преступления в сфере компьютерной информации
Статья 272. Неправомерный доступ к компьютерной информации
Статья 273. Создание, использование и распространение вредоносных программ для ЭВМ
Статья 274. Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети

Яндекс браузер настройки по умолчанию

Таким образом, данное действие, совершаемое преступником, попадает под действие статьи 274. Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети, т.к. при достаточном количестве запросов, создается т.н. DDoS-атака, влекущая за собой
(цитата: блокирование охраняемой законом информации ЭВМ) и ВОЗМОЖНОЕ наказание, в виде
(цитата: лишения права занимать определённые должности или заниматься определённой деятельностью на срок до пяти лет, либо обязательными работами на срок от ста восьмидесяти до двухсот сорока часов, либо ограничением свободы на срок до двух лет. )

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

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

Теперь давайте посмотрим, как работает уязвимая форма обратной связи.

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

Браузер Mozilla Firefox 2.0.0.12
Как вы сами понимаете, простое нажатие кнопки F5 на клавиатуре снова отправит вам письмо. Ну а автоматизировать данный процесс, повторюсь, совсем не сложно (хотя бы с помощью Opera).

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

Я предлагаю пять вариантов, каждый вариант обладает как положительными сторонами, так и отрицательными.

Вариант номер 1:

Вот несколько из них:
AJAX contact form — [Описание][Демо]
An AJAX contact form — [Описание][Демо]
Ajax.Form.Mootools — [Описание + Демо]

Хорошо: множество готовых примеров; сообщение отправляется без перезагрузки страницы;

Плохо: если у пользователя отключён JavaScript — то форма работать не будет.

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

Сделать это можно несколькими путями, самый топорный — это через META-теги:

Хорошо: работает, и в большинстве случае помогает;

Плохо: у этого решения отвратительное юзабилити.
Вариант номер 3:

Форма отправляет сообщение не на почтовый ящик, а складывает в базу данных. Соответственно можно отсекать попытки спама просто и незатейливо. К примеру запись не вноситься в БД, если содержимое полностью совпадает с содержимым предыдущего сообщения, при условии того, что IP у отправивших одинаковые, либо из одной подсети. Тут можно придумать массу вариантов. Сообщения из формы обратной связи могут быть интегрированы, к примеру, с CRM.

Хорошо: на мой взгляд очень хорошая защита;

Плохо: требуется база данных, увеличивается время работы скрипта, увеличиваются требования к мощностям (если сайт популярен, то особенно), обмануть всё-таки можно.

При нажатии на кнопку «отправить» можно записывать браузеру куку, при наличии которой повторно отослать сообщение можно только через некоторое время.

Хорошо: способ работает, потенциальное количество спама уменьшается;

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

Капча (если он не кривая) спасёт от спама через форму обратной связи.

Хорошо: способ действенный;

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

Стоит учесть, что абсолютной панацеи всё равно нет, просто эти способы (которые, кстати, легко можно модернизировать, совмещать и т.п.) помогут отгородиться от проказ молодых и неопытных сетевых хулиганов.
Спасибо metalalisametalalisa за дополнение. Если честно, про капчу хотел написать, на забыл 🙂

Источник
Рейтинг
Загрузка ...