如何防止PHP中的ajax-spam?

Cyb*_*rix 5 php ajax spam-prevention

美好的一天,

我想知道如何保护我的网站免受ajax垃圾邮件的侵害.我希望限制每个用户的任何ajax操作.让我们说每分钟8次ajax动作.

一个动作的例子是:一个添加/删除博客帖子的按钮"作为我的最爱".

除非我错了,我相信最好的方法是使用$_SESSION变量并避免某人/机器人清除cookie以避免我的保护.我只允许登录用户使用ajax功能.

使用数据库会使我的保护无用,因为这是我想要避免的不需要的数据库写入.

我必须提到我实际上使用PHP作为服务器语言和jQuery来进行我的ajax调用.

谢谢

编辑:

感恩

...保护我的网站......

令人困惑,但它不是关于跨域的ajax.

编辑2011-04-20: 我为它添加了50的赏金.

Win*_*ail 9

由于您只允许AJAX操作登录用户,因此解决起来非常简单.

  • 为每个帐户创建一个时间戳字段.您可以在数据库中执行此操作,也可以利用Memcached,或者使用平面文件.
  • 每次用户通过AJAX界面发出请求时,都会将当前时间戳添加到记录中,并且:
  • 检查以确保最后八个时间戳不是一分钟前的所有时间戳.

从那里你可以添加额外的魔法,比如明显违反速度限制的临时账户,或者将违规者的IP与已知垃圾邮件发送者的黑名单进行比较,等等.