我正在使用hugo生成的静态网站上工作,并且希望嵌入电子邮件表单,而无需使用诸如formpree.io(太头疼的事情)之类的外部(商业或可能不可信的)服务在欧盟中符合所有规定,并且自托管版本可与我也不想使用的SendGrid一起使用)。
为此,我构建了一个可以将数据发布到的API-验证数据后,将通过 sendmail 发送电子邮件。该API是使用flask( python )构建的,并且已经可以使用。
一旦对所有人有用,我打算与社区分享。
如何保护端点免受垃圾邮件发送者,机器人和其他不良行为的侵害?
关于如何进行的任何想法/建议?
谢谢。
我做了一些研究,并了解了烧瓶限制器,但我认为这还不够。
其他人建议包括CSRF令牌,但我不知道如何“生成”并将其包含到我的静态站点中。
我认为可能会对您有所帮助的另一件事是Google reCaptcha,但我不知道如何在静态网站中使用它。
目前,我唯一要做的就是检查原点,但是当然可以使用curl之类的工具自由设置它,因此我认为它并没有太大的保护作用:
if request.method == 'POST' and origin in ALLOWED_ORIGINS:
return send_mail()
最后,我只想将表单嵌入到静态的hugo网站中,使我能够将消息发布到API,而无需将我的邮件地址或API暴露给不需要的参与者。
我很高兴在这里获得一些帮助或想法。谢谢!
编辑: 我刚刚发现Forma,如果我的服务器满足要求,我会给它一个机会。
编辑#2: 我将继续开发自己的API,因为Forma也不满足我的要求。
我添加了一个蜜罐字段,希望机器人可以自动填充该字段。