我们有一个在Ubuntu / Apache上运行的Django Web应用程序。最近,我们在大量垃圾邮件(评论,注册,用户贡献内容等)方面遇到了很多问题。
我们有CSRF安全措施,但我想知道其他人采取了哪些措施来解决这个问题(ip表限制,Apache模块,验证码等)?
答案 0 :(得分:3)
除了已编写的其他海报外,您还可以使用akismet或mollom服务。对于pypi上存在的两个Python库,分别为akismet和PyMollom。您可以看到它们如何集成到Django项目here(akismet示例)和here(mollom示例)中。
如果您不想依赖外部服务,请考虑使用Django的验证码应用程序。我个人使用Django Simple Captcha并对它很满意,它非常可定制且易于安装。它还支持音频验证码。 This bitbucket repo包含一个简单的Django项目,展示如何使用Django Simple Captcha验证保护经典联系表单。
此外,我不确定使用IP表是阻止您网站上垃圾邮件的最佳方法,至少如果您不必阻止通常令人讨厌的IP地址。
答案 1 :(得分:2)
Django CSRF保护旨在保护您的表单不受cross-site request forgery的影响,而不是来自垃圾邮件。
CAPTCHA(完全自动公开Turing测试告诉计算机和人类除外)将保护您免受垃圾邮件的攻击。</ p>
对于人为生成的垃圾邮件,您可以使用审核系统。
答案 2 :(得分:1)
您可以查看django-simple-math-captcha作为基于文本的验证码的替代方法。集成非常简单,不依赖于任何第三方系统。
答案 3 :(得分:0)
我认为这些问题属于根设计问题。明确允许谁发布的政策 可以匿名用户发帖。也许只允许注册用户发帖。或者拥有一组关于允许谁发布到哪里的权限。
Captchas是一种非常简单的方法来清除垃圾邮件。 http://www.google.com/recaptcha Recaptcha只需要几分钟的时间来整合,并且非常有效。