Intro
Я работаю над статическим сайтом, созданным с помощью hugo, и хочу встроить форму электронной почты без использования внешних ( коммерческих или, возможно, ненадежных ) сервисов, таких как formspree.io (* 1005)* Слишком большая головная боль в Европейском союзе со всеми правилами, а самодостаточная версия работает с SendGrid, которую я тоже не хочу использовать ).
Не нашел ничего достаточно простого
- Я нашел другие конструкторы форм, которые все делали слишком много, в которых я не нуждался (, например: веб-интерфейс, постоянство в БД, другие необычные интеграции )
- Это действительнораздражает то, что большинство из них зависят от внешних служб, сломаны или страдают от чрезмерной сложности ( все, что я хочу, - это отправлять электронную почту с помощью sendmail после того, как кто-то отправляет данные в форму )
Написал свою собственную вещь
Для этой цели я создал API, на который я могу публиковать данные - после проверки, электронное письмо будет отправлено через sendmail .API построен с использованием flask ( python ), и он уже работает.
Я намерен поделиться им с сообществом, если он, конечно, кому-нибудь пригодится.
Каксделать его достаточно безопасным для WWW
Как защитить свою конечную точку от спамеров, роботов и других злоумышленников?
Есть идеи / предложения о том, как действовать?
Спасибозаранее.
Что я думал об этом
Я провел небольшое исследование и прочитал о колбе-ограничителе, но не думаю, что этого достаточно.
Другие предлагают включитьТокен CSRF, но я не знаю, как «сгенерировать» и включить его в мой статический сайт.
Еще одна вещь, которую я подумал, вероятно, поможет, это Google reCaptcha, но я не знаю, как использовать его в статическомsite.
Что я делаю сейчас (= змеиное масло)
На данный момент единственное, что я делаю, это проверяю источник, но, конечно, он может свободно устанавливать ставки с помощью таких инструментов, как curl, поэтомуЯ полагаю, что это не очень большая защита:
if request.method == 'POST' and origin in ALLOWED_ORIGINS:
return send_mail()
Что яwant
В конце я просто хочу встроить форму в статический hugo-сайт, который позволяет мне отправлять сообщения API, не раскрывая мой почтовый адрес или API нежелательным субъектам.
Я был бы очень рад за помощь или идеи здесь.Спасибо!
Редактировать: Я только что нашел Форма , и если мой сервер соответствует его требованиям, я сделаю попытку.
Edit # 2: Я буду продолжать разрабатывать свой собственный API, так как Forma также не соответствует моим требованиям.
Я добавил поле honeypot, которое, я надеюсь, будет автоматически заполнено ботами.