0

我开发了一个 PHP 应用程序,它的主要用例是从数据库中获取一些数据。我想通过使用虚假请求来防止获取数据库数据的所有记录。UI 很简单(类似于 Google 主页),但我想提供上一条和下一条记录的链接,无需注册即可使用该应用程序。

您建议的解决方案是什么?

*更新:*我所说的虚假请求是指由非人类或某些机制(如 cURL)生成的请求,您通常会通过 CAPTCHA 阻止此类请求。

4

1 回答 1

1

您可以做几件事,但请注意:有些用户可能不喜欢它。

  • 如果希望用户在进行搜索之前登录,那么您必须检查是否有有效的登录用户(我知道这很明显,可能不是您的情况,但可能有助于其他人阅读您的问题)。
  • 您可以设置一个请求处理程序(我是一个 ASP.Net 人),它不允许每秒来自同一 IP 的超过 1 个请求,或每分钟 30 个请求等......
  • 正如@user1781026 所说,您的请求应该有 LIMIT (mySql) 或 TOP (SQL Server),因为通常用户不会需要所有数据库记录,如果它们超过 100 或 50000,只需选择一个“好”的数字对于这个限制。
  • 您可能还要求用户选择“类别”或日期范围(“本月”、“上个月”、“今年”......)。
  • 如果您必须避免“任何”非人类请求,那么您唯一的选择是(afaik)要求登录或使用验证码。
于 2012-12-08T21:12:36.573 回答