【问题标题】:Best Practice to prevent form abuse Django防止表单滥用的最佳实践 Django
【发布时间】:2022-01-18 17:59:54
【问题描述】:

在 Django 中限制表单提交的最佳方法是什么? 表单应该在一小时内从同一个IP提交5次,有没有办法在Django中做到这一点?

我尝试了Django Ratelimit,但它并没有真正起作用,因为流量没有被阻塞。

【问题讨论】:

  • “表格应该在一小时内从同一个 IP 提交 5 次”——注意这一点。您可能正在使用 IP 地址作为其他东西的代理(用户?家庭?公司?),但是同一个用户可以很容易地拥有不同的 IP 地址(通过手机、VPN、他们的 ISP 给他们一个新地址等)和许多 人可以共享一个 IP 地址(例如,一百个人在一栋办公楼中)。你的实际目标是什么?我建议你阅读the XY problem。
  • 确实如此。实际目标是限制表单的提交,例如防止 DDOS/DOS 或垃圾邮件攻击。

标签: python html django forms


【解决方案1】:

跟进答案。

我使用 Memcache 来检查用户是否在特定时间范围内提交同一个表单超过五次。效果很好,操作也很简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-28
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2011-01-11
    • 2014-06-21
    • 1970-01-01
    相关资源
    最近更新 更多