Контактная форма выглядит простой: несколько полей, кнопка и письмо. На деле это чувствительная часть сайта. Если она сделана плохо, она открывает адрес для роботов, создает спам или принимает опасный контент.
Не показывать email открыто
Email в исходном коде облегчает сбор адресов. Хорошая форма позволяет связаться с компанией, не отдавая роботам адрес для сбора.
Посетитель должен понимать, как связаться, но получатель письма не обязан быть виден в DOM.
Проверять на сервере
Проверка в браузере удобна, но ее можно обойти. Сервер должен проверить имя, email, длину сообщения и возможные инъекции.
Ошибки должны быть понятными, но без технических деталей.
Honeypot, token и лимит отправок
Honeypot блокирует ботов без капчи для человека. CSRF token проверяет происхождение запроса, а лимит отправок снижает злоупотребления.
NIKAIA.NET внедряет эти основы по умолчанию.