2025 年 4 月 12 日:
- 目录:介绍在互联网上放置表单仍很困难,需多个步骤确保安全。
- 总结:若网站需“联系我们”表单,最好付费给表单提供商,也有免费服务但需大量工作。表单难保障表明互联网构建方式仍有缺陷。
- 引言:之前抱怨写代码或在网上放东西时要考虑很多额外小事,如编程中每行代码增加复杂性和潜在安全问题,部署到互联网的小要求和考虑很多。此篇从企业主角度讨论有“联系我们”表单的网站。
- 抽象 - 使用表单提供商:最好使用服务来抽象表单,如 Google Forms 等,可节省时间和精力,但每月需付费,如 Tally 每月 24 美元等,不过仍比自己创建表单好。
- 重要 - 数据处理:需考虑表单收集信息的处理,自定义表单可能会停止工作,使用供应商可避免,且需保证表单长期工作。
- 若自己创建表单仍需服务协助:自己创建表单需托管、运行服务器端提交处理程序、存储数据、发送邮件等服务,即使自己创建也可能需付费保障安全。
- HTML 表单需提交给处理程序:这是服务器端代码,需编写并维护,若使用框架可能无需编写,且代码可能有漏洞被利用。
- 仍想自己创建表单:“联系我们”表单易受各种攻击,如垃圾邮件、机器人、网站或存储拒绝服务等,需解决多个安全需求。
一些安全要求:
- HTTPS/SSL/TLS:Let’s Encrypt 提供免费 TLS 证书,如今很容易实现,很多 web 服务提供商已采用,如 Cloudflare 免费提供。
- CAPTCHA:防止自动化机器人攻击和垃圾邮件,Cloudflare 的 Turnstile 有免费层。
- Rate Limiting:限制网络流量,防止机器人 spam,较难解决,常与 Web Application Firewalls 结合,通常是高级服务。
- CSRF:防止跨站请求伪造,虽“联系我们”表单不是传统关注对象,但实施可防止 spam、abuse 和保护后端操作,需实现 CSRF 令牌并在服务器端处理,可使用同步令牌模式等方法。
- Input Validation:确保用户输入干净、正确和安全,如验证姓名、邮箱等,防止 XSS 攻击,需移除危险文本,可使用相关库。
- XSS:防止攻击者注入恶意代码,在自己创建表单时需处理,可使用 Javascript 库如 XSS 进行数据清理。
- 结论:创建 HTML 表单容易,但在网上接受提交充满风险,自己创建表单若被滥用可能花费很多钱,这就是表单提供商存在的原因,虽不便宜但有价值。互联网平台未解决此问题令人费解,或许随着 AI 写代码的大量使用会改变,付费给表单提供商可解决大部分问题。
- PS. 示例“免费层”自己搭建栈:利用 Cloudflare 和 Resend 等免费服务搭建相对安全的表单,Cloudflare 提供托管、HTTPS、CAPTCHA、数据库等,Resend 用于发送表单邮件,但 Cloudflare 免费计划的速率限制较繁琐,workers 的速率限制目前为 beta 版。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。