无论请求是如何发起的(浏览器、cURL、邮递员、node.js 应用程序、PHP 应用程序等),Web 请求都没有随附的 uber 标识符可以告诉您请求背后的用户是谁。
这个问题在新的 Web 开发人员中经常出现。最后归结为两点:
要求用户拥有一个帐户,登录该帐户才能使用您的服务,每次使用服务时都需要登录凭据,然后跟踪他们的使用情况以查看它是否符合您的使用指南。如果没有,您可以禁止该帐户。
通过帐户或 IP 地址或两者的某种组合来限制用户的速率。如果它们超过某个速率限制,您可以减慢它们的速度或拒绝访问。
浏览器提供 cookie,以便您可以尝试通过浏览器 cookie 识别重复用户。但是,这可以通过清除 cookie 来解决。Cookie 是针对每个浏览器的,因此您无法将同一用户跨多个设备或跨多个浏览器与普通 cookie 相关联。
除了原始 IP 地址之外,cURL 和 Postman 默认不提供任何识别信息。您可以尝试跟踪 IP 地址,但仅依赖 IP 地址存在一些问题,因为企业用户可能会通过代理,这使他们看起来都来自同一个 IP 地址。如果您因不当行为而禁止一名用户,这可能会影响许多其他无辜的用户。
如果您看看 Google、Facebook 等是如何做到这一点的,它们都要求您创建某种帐户,然后为每个请求提供该帐户的凭据。这允许他们在需要时跟踪您的使用情况并管理您的流量。而且,对于免费使用,它们通常都有速率限制,以限制您进行 API 调用的频率。这可以防止任何单个用户使用超过适当份额的服务负载。并且,它允许他们检测和管理滥用系统的账户。
比这更进一步的是如何创建帐户,因为您不希望滥用者能够每 10 分钟运行一次脚本来自动创建一个新帐户。也有多种方案来保护这一点。最常见的只是需要一些证据证明有人参与了创建新帐户(验证码、问题/答案等),这会阻止自动创建帐户。其他检查可能需要有效的信用卡、唯一的电子邮件地址验证等...
| 归档时间: |
|
| 查看次数: |
1685 次 |
| 最近记录: |