php - 有效限制 PHP 中每分钟的点击次数(阻止网页抓取或复制机器人)

标签 php performance captcha processing-efficiency

我面临着机器人从我的网页复制所有内容的问题(我经常尝试更新)。

我尝试禁止它们,或者混淆代码以使其更难以复制。然而,他们找到了一些方法来克服这些限制。

我想尝试限制每分钟的点击次数(或 X 次,不一定是分钟),但使用验证码来克服这些限制。例如,如果您在过去 5 分钟内请求了超过 10 个页面,则需要使用验证码来证明您是人类。因此,如果该用户是合法用户,您将能够继续上网。

我只想在内容页面中执行此操作(以更有效地执行此操作)。我曾想过MemCached,但由于我不欠服务器,所以无法使用它。如果我使用 Servlet,我会使用 HashMap 或类似的,但由于我使用 PHP,我仍在尝试寻找解决方案。

我不认为 MySql(或数据库)是一个解决方案,因为我每秒可以有很多点击。我应该在几分钟后删除旧请求,从而创建大量不必要且低效的流量。

有什么想法吗?

摘要: 如果我在网页的某个部分每分钟获得太多点击,我想在 PHP 中使用 Captcha 有效地限制它。例如,如果您在过去 5 分钟内请求了超过 10 个页面,则需要使用验证码来证明您是人类。

最佳答案

你的问题有点违背互联网的精神。

  1. 每个人都复制/借用每个人
  2. 每个搜索引擎都有网络上其他所有内容的副本

我猜您遇到的问题是这些机器人正在窃取您的流量?如果是这样,我建议您尝试实现一个 API,允许他们合法地使用您的内容。

通过这种方式,您可以控制访问,最重要的是,您可以要求链接回您的网站,以换取使用您的内容。这样您的网站在内容方面应该排名第一。您甚至不需要 API 来实现此策略。

如果您坚持限制用户访问,您有以下选择:

  1. 使用 JavaScript 解决方案并使用 Ajax 将内容加载到页面中。即使这样也无法愚弄最好的机器人。
  2. 将您的所有内容置于用户名/密码系统中。
  3. 阻止违规 IP - 这是一场维护噩梦,您永远无法得到保证,但它可能会有所帮助。

问题是 - 如果您希望 Google 找到您的内容并仅限于其他机器人,那么您就是在问不可能的事。

您最好的选择是创建一个 API 并控制人们复制您的内容,而不是试图阻止它。

关于php - 有效限制 PHP 中每分钟的点击次数(阻止网页抓取或复制机器人),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12226650/

相关文章:

javascript - PHP/JQuery - 根据时间更改页面内容

php - 在开始比较之前如何在同一页面上获取刷新的数据库?

mysql - 在 MySQL 中找到最接近整数的最有效方法?

php - 验证验证码功能

asp.net-mvc - N次登录失败后如何显示验证码?

php - Laravel 4 - 如何验证多个字段的唯一性?

PHP PDO插入查询错误: Integrity constraint violation

r - R中学生化外部残差的快速准确计算

sql-server - 我如何知道距离用完所有 SQL Azure 计算资源还有多远?

php - 如何在 Zend Form 中添加验证码?