限制JSON访问只能使用一次

时间:2015-02-03 19:49:24

标签: php jquery ajax json

我有来自jQuery的JSON ajax调用,它通过PHP地理位置返回用户所在国家/地区。现在问题是,有些用户把它放在他们的网站上,我不知道他们为什么这样做,给垃圾邮件发送垃圾邮件或什么,但当有人在他们的页面上时,它每秒调用JSON 20次,每次都是在我的服务器上执行脚本。我是否可以每页打开一次限制JSON返回(通过PHP返回函数或JSON代码),有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

假设您正在使用动态页面中的GeoIP JSON功能,您可以添加随机标识符,例如:

$id = md5(random());

然后将$id保存在会话表中并沿HTML发送。

更改您的jQuery脚本,以便在将GeoIP请求发送到服务器时包含该标识符。在服务器上,首先检查jQuery发送的$id是否存在于会话表中。如果没有,那就停在那里,如果你愿意,可以将IP地址添加到你的防火墙一段时间,这样你几乎不会浪费任何资源。

如果您不想允许多次使用,则必须在一次使用后删除$id。这样,即使您的页面也不会收到GeoIP作为回报。

您应该为您在网站上使用的任何表单使用类似的会话标识符。它也可以附加到cookie上,但在欧洲,他们很擅长要求人们不使用cookie ......所以你可能不想这样做。