静态站点邮件表单API安全

时间:2019-05-02 00:08:55

标签: python flask hugo

简介

我正在使用hugo生成的静态网站上工作,并且希望嵌入电子邮件表单,而无需使用诸如formpree.io(太头疼的事情)之类的外部(商业或可能不可信的)服务在欧盟中符合所有规定,并且自托管版本可与我也不想使用的SendGrid一起使用)。

发现没有足够简单的东西

  • 我发现了其他表单构建器,它们都做了我不需要的太多事情(,例如:Web界面,数据库中的持久性,其他高级集成
  • 其中大多数人如何依赖外部服务,损坏或过于复杂(我想要的只是在有人将数据发布到表单后发送带有sendmail的电子邮件),这真令人烦恼 li>

写了我自己的东西

为此,我构建了一个可以将数据发布到的API-验证数据后,将通过 sendmail 发送电子邮件。该API是使用flask( python )构建的,并且已经可以使用。

一旦对所有人有用,我打算与社区分享。

如何使其对WWW足够安全

如何保护端点免受垃圾邮件发送者,机器人和其他不良行为的侵害?

关于如何进行的任何想法/建议?

谢谢。

我对此有何看法

我做了一些研究,并了解了烧瓶限制器,但我认为这还不够。

其他人建议包括CSRF令牌,但我不知道如何“生成”并将其包含到我的静态站点中。

我认为可能会对您有所帮助的另一件事是Google reCaptcha,但我不知道如何在静态网站中使用它。

我现在要做什么(=蛇油)

目前,我唯一要做的就是检查原点,但是当然可以使用curl之类的工具自由设置它,因此我认为它并没有太大的保护作用:

 if request.method == 'POST' and origin in ALLOWED_ORIGINS:
        return send_mail()

我想要的

最后,我只想将表单嵌入到静态的hugo网站中,使我能够将消息发布到API,而无需将我的邮件地址或API暴露给不需要的参与者。

我很高兴在这里获得一些帮助或想法。谢谢!

编辑: 我刚刚发现Forma,如果我的服务器满足要求,我会给它一个机会。

编辑#2: 我将继续开发自己的API,因为Forma也不满足我的要求。

我添加了一个蜜罐字段,希望机器人可以自动填充该字段。

0 个答案:

没有答案