1

在我的网站上,出于各种原因,我需要限制用户请求:

  • 防止过度查询数据库或 3rd 方 api
  • 防止垃圾邮件
  • 防止他人抓取我的数据

我想知道节流的最佳做法是什么?应该在脚本级别(PHP/MySQL)还是在服务器级别(Apache)完成?

关于节流,我应该记住任何具体的最佳实践吗?

4

2 回答 2

1

理想情况下,这应该在网络/防火墙级别或至少在 Apache 上完成。

PHP 节流也是可能的,但只有在您想拒绝对资源的访问而不仅仅是延迟时才应该这样做。有关更多详细信息,请参阅我在类似问题中给出的这个答案(和评论):

于 2011-05-05T03:57:48.830 回答
0

在我的脑海中,您可能需要考虑使用以下几个:

1)您可以使用 JavaScript 创建设置标志的间隔,以便您可以检查标志以确保它们不会在间隔期内请求。

2)您可以使用 PHP 并将他们的请求时间存储在您正在运行的会话中并检查,这样他们就不会过于频繁地发出请求。

3)您可以使用 MySQL 记录他们最后一次访问的时间,并查看是否应该允许他们使用该资源。

通常这些方法分为客户端和服务器端。部署您觉得最舒服且对自己最方便的任何一个。

并非所有部署都允许您修改 Apache 服务器配置 :)

希望能帮助到你。干杯!

于 2011-05-05T04:11:33.960 回答