Django - 在第三方应用程序上使用验证码

时间:2012-08-12 08:53:32

标签: django

我的Django网站容易受到垃圾邮件的攻击,所以我想加入验证码保护。问题是许多组件来自第三方来源,并且不包括验证码验证。虽然我可以修改他们的观点,这会影响代码的可移植性/可升级性,所以我宁愿不这样做。我只能修改他们的模板。

我有解决方案,但它有点乱,在我开始实施之前,我想看看是否有人有更好的。

我的解决方案如下:

1)重定向网站上的所有帖子表单以定位“验证码反弹”应用程序,该应用程序将以编程方式重建其帖子请求,检查验证码是否正确,向帖子添加验证令牌,然后重定向回原始帖子目标

2)实现一种新类型的中间件,它将检查所有发布请求。如果发布请求未定位到“验证码退回”网址,则除非验证令牌存在,否则中间件将返回错误。

正如我之前所说,这似乎是不必要的混乱。有没有人有更好的主意?

2 个答案:

答案 0 :(得分:0)

这取决于应用消息,但是:

  • 您通常可以将他们的观点包装到您的视图中并添加额外的处理
  • 您可以扩展其表单以添加验证码字段
  • 您可以添加额外的javascript检查模板标记,然后将其添加到模板中。

答案 1 :(得分:0)

好的,我明白了。这应该只能通过使用中间件来实现。只需给它一个应该检查验证码正确性的视图列表。在错误响应的情况下,它会从请求中删除帖子和/或激活某种错误变量。更简单。

相关问题