标记使用宏/自动刷新的用户

时间:2011-02-16 07:50:26

标签: php

我们的网站开始出现大问题。我们的一些用户正在使用自动更新程序和宏程序来利用我们网站的某些部分,现在它开始产生一些严重的影响。由于这一点,我们的网站大部分时间都滞后,我们需要找出哪些用户正在执行这些任务,以便我们可以直接惩罚他们。我们在这个项目中使用PHP。

我可以对此问题使用任何帮助。该网站有时会严重滞后,很难让它继续运行。

3 个答案:

答案 0 :(得分:2)

解析您的Web服务器守护程序的访问日志,并计算每个访问者IP的请求之间的间隔。如果它们非常规则(即每五秒+/- 0.25秒),则标记它们。

答案 1 :(得分:0)

如果您的用户已确定,则很难停止此类行为,但您可以解决问题。首先在日志中查找自动用户行为,在固定的时间间隔内刷新/操作/请求,通常这些模式非常明显,因为由于速度或活动周期,人类无法以这种方式行事。

答案 2 :(得分:0)

使用缓存或转发代理,如Squid或Varnish。

  1. 缓存页面生成的昂贵部分将使网站运行得更快。您不需要显示实时信息吗?
  2. 添加缓存标头(例如“Cache-Control:public,max-age = 60”)并设置像Squid或Varnish这样的转发代理。这将使网站在大多数时间内运行得更快,而无需添加缓存或优化代码。
  3. 我说真正的问题不是你的用户,而是你的代码。上述两种方法将帮助您在短期内处理这种情况。对于长期解决方案,您应该重构和优化代码。对于设计合理的网站,重新加载器是不可见的。它们非常罕见,你不能拥有很多客户。

    这是一种测试您的网站是否具有“重新加载器”的简单方法。在Firefox等浏览器中打开您的网站。按住F5一分钟(或更短时间)。发布F5;如果网站立即出现,你就没事了;如果您需要重新启动服务器以使其再次响应,则您很容易重新加载DOS。如果您无法处理多个并发请求,那么任何人都可以关闭您的站点,而不仅仅是具有重新加载应用程序的核心用户。