【发布时间】:2011-05-05 03:53:15
【问题描述】:
在我的网站上,出于各种原因,我需要限制用户请求:
- 防止过度查询数据库或第 3 方 api
- 防止垃圾邮件
- 防止他人窃取我的数据
我想知道节流的最佳做法是什么?应该在脚本级别(PHP/MySQL)还是在服务器级别(Apache)完成?
关于节流,我应该牢记哪些具体的最佳实践?
【问题讨论】:
标签: php security apache web-applications throttling
在我的网站上,出于各种原因,我需要限制用户请求:
我想知道节流的最佳做法是什么?应该在脚本级别(PHP/MySQL)还是在服务器级别(Apache)完成?
关于节流,我应该牢记哪些具体的最佳实践?
【问题讨论】:
标签: php security apache web-applications throttling
理想情况下,这应该在网络/防火墙级别或至少在 Apache 上完成。
PHP 节流也是可能的,但只有在您想拒绝对资源的访问而不只是延迟时才应该这样做。有关更多详细信息,请参阅我在类似问题中给出的这个答案(和 cmets):
【讨论】:
在我的脑海中,有几个你可能想要考虑使用:
1) 您可以使用 JavaScript 创建设置标志的间隔,以便您可以检查标志以确保它们不会在间隔期内请求。
2) 您可以使用 PHP 并将他们的请求时间存储在您正在运行的会话中,并对其进行检查,这样他们就不会过于频繁地发出请求。
3) 您可以使用 MySQL 记录他们最后一次访问的时间,并查看是否应该允许他们使用该资源。
一般这些方法分为客户端和服务器端。部署您觉得最舒服且对自己最方便的任何一个。
并非所有部署都允许您修改 Apache 服务器配置 :)
希望对您有所帮助。干杯!
【讨论】: