6

有一个 IP(来自中国)试图下载我的整个网站。它下载我的所有页面并显着加载服务器(我有超过 500 000 个页面)。查看访问日志,我可以判断它绝对不是 Google 机器人或任何其他搜索引擎机器人。

我暂时禁止了(使用iptables规则),但对我来说不是解决方案,因为我的一些真实用户也有相同的IP,所以他们也被禁止了,无法访问该网站。

有什么办法可以防止这种“用户活动”?如果您尝试每秒请求超过 5 个请求,也许是一种实现验证码的机制?

PS 我正在使用 Yii 框架 (PHP)。

非常感谢任何建议。

谢谢你!

4

2 回答 2

5

你已经回答了你自己的问题!

captcha如果请求超过每秒或每分钟的特定数量,请出现!

你应该使用CCaptchaAction来实现,像这样

于 2010-08-30T06:10:00.300 回答
0

我想监视可疑用户活动的最佳方法是真正的用户会话,CWebUser's getState()/ setState()。将当前请求时间存储在用户会话中,将其与之前的几个值进行比较,如果用户请求过于频繁,则显示验证码。

创建新组件,通过预加载CWebApplication::$preload并检查组件init()功能中的用户活动。这样您就可以轻松地打开和关闭机器人检查。

于 2010-08-31T19:28:13.253 回答