限制 JSON 访问只能使用一次


Restrict JSON access only one use

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

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

$id = md5(random());

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

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

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

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