首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

译|通过Node和Redis进行API速率限制

速率限制可以保护和提高基于 API 的服务的可用性。如果你正在与一个 API 对话,并收到 HTTP 429 Too Many Requests 的响应状态码,说明你已经被速率限制了。...为什么要速率限制? 当你考虑限制你自己的基于 API 的服务时,你需要在用户体验、安全性和性能之间进行权衡。 ? 控制数据流的最常见原因是保持基于 API 的服务的可用性。...有几种方法可以控制 API 服务的入站流量: 按用户:跟踪用户使用 API 密钥、访问令牌或 IP 地址进行的调用 按地理区域划分:例如降低每个地理区域在一天的高峰时段的速率限制 按服务器:如果你有多个服务器处理对...你可以使用这些速率限制中的任何一种(甚至组合使用)。 ? 无论你选择如何实现,速率限制的目标都是建立一个检查点,该检查点拒绝或通过访问你的资源的请求。...请记住,当你研究 API 限制时,你是在性能、安全性和用户体验之间进行权衡。

1.9K31

怎么使用slim-jwt-auth对API进行身份验证

这两天一直想找个机会做一下API身份验证,就像微博那样提供接口给别人用,但又有所限制,也不会导致接口滥用。...大概一年半之前,写了个大学英语四六级成绩查询的接口(由于历史原因,此Github帐号不再使用了,新的在这里),托管在新浪云,放到了网上,也没有加任何限制,结果被一个人短时间内多次调用,真的是非常频繁,浪费了不少云豆...现在正好可以用之前写的成绩查询接口来做这个身份验证的实验。 准备工作 在做一个二维码签到/点名系统时,需要后台同时支持移动端、PC端和网页版,因此决定写成接口,这样比较方便。...安装框架和用到的第三方组件 官方推荐使用composer进行安装,下面不说废话了,Come on Install composer Slim and some third plugins curl...://github.com/xu42/API/blob/master/v1/cet_score/cet_score.php Authentication Process (身份验证流程) 假定使用我们的接口的人

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

PHP-web框架Laravel-中间件(一)

Laravel中,中间件是处理HTTP请求的一种机制。它可以用来检查请求是否满足某些条件,比如是否已经进行身份验证或者是否有足够的权限来访问某个资源。...中间件通常用于控制应用程序的访问权限,或者进行一些基于请求的操作,比如日志记录或性能分析。中间件的基本使用Laravel中,中间件可以通过路由或控制器来指定。...这意味着只有经过身份验证的用户才能访问该路由。中间件类Laravel中的中间件实际上是PHP类。在创建中间件时,可以选择手动创建类,也可以使用Laravel提供的中间件生成器来自动生成。...web中间件在这个示例中,我们定义了两个中间件组:web和api。web中间件组包含一组用于Web应用程序的中间件,如加密Cookie、启动会话和验证CSRF令牌。...api中间件组包含一组用于API的中间件,如速率限制API身份验证。在路由中使用中间件。可以在路由定义中使用中间件。

3.3K31

API 安全最佳实践

."); }}基于令牌身份验证基于令牌身份验证是一种被广泛使用的方法,通过向认证的用户颁发唯一令牌,随后 API 请求凭此令牌进行验证。...最常用的令牌生成机制是 JWT 令牌(JSON Web Token)。以下是使用 C# 创建 JWT 令牌以对用户进行身份验证的示例。...Unauthorized(); // 这里的逻辑 return Ok("在Startup.cs中,将以下内容添加到Configure方法中."); }}速率限制速率限制...下面是使用 ASP.Net Core 中间件实现速率限制的示例,每分钟仅允许 100 个调用。...本文探讨了 C# 中的各种 API 安全机制,包括身份验证、基于令牌身份验证API 密钥、速率限制、输入验证、TLS/SSL 加密、CORS、日志记录和监控。

26910

错误代码

401 - 无效身份验证这个错误信息表明您的身份验证凭据无效。这可能由多种原因引起,例如:您使用API密钥已被吊销。您使用API密钥与请求的组织或项目分配的API密钥不同。...429 - 请求速率已达到限制这个错误消息表明您已经达到了API的分配速率限制。这意味着您在短时间内提交了过多的令牌或请求,超过了允许的请求数量。...要解决此错误,请按照以下步骤操作:控制您的请求速率,避免进行不必要或冗余的调用。如果您使用的是循环或脚本,请确保实施回退机制或重试逻辑,以尊重速率限制和响应头。...联系您的组织所有者,以增加项目的速率限制。429 - 您超出当前配额,请检查您的计划和结算详情这个错误消息表明您已经达到了API的月度使用限制,或者对于预付费用户,您已经使用完了所有的信用额度。...您可能需要从API密钥仪表板生成一个新密钥,确保没有额外的空格或字符,或者如果您有多个密钥或令牌,可以尝试使用其他密钥或令牌。确保您已按照正确的格式进行操作。

9010

Laravel Sanctum API 授权

Laravel Sanctum 为 SPA(单页应用程序)、移动应用程序和基于令牌的、简单的 API 提供轻量级身份验证系统。..." php artisan migrate 接下来,如果您想利用 Sanctum 对 SPA 进行身份验证,您应该将 Sanctum 的中间件添加到您应用的 app/Http/Kernel.php 文件中的...这一行,Laravel 9默认是注释掉的,需要取消注释 API 令牌认证 发布 API Tokens 要开始为用户颁发令牌,你的 User 模型应使用 Laravel\Sanctum\HasApiTokens...HasFactory, Notifiable; } Laravel 9已经默认添加了 要发布令牌,你可以使用 createToken 方法。...在存入数据库之前,API 令牌使用 SHA-256 哈希加密过,但你可以使用 NewAccessToken 实例的 plainTextToken 属性访问令牌的纯文本值。

2.9K30

详解将数据从Laravel传送到vue的四种方式

APILaravel 自身的 web 中间件和 CSRF 令牌一起使用 ?...同时,api 组只有一个基本的限制和一些绑定。如果您的目标只是通过一个基本的、轻量级的 api 将信息拉入 Vue ,而这个 api 不需要身份验证或 post 请求,那么您可以到此为止。...这个方法唯一警告的是,你必须使用 Laravel 和 一个 blade 模板来渲染前端。这样框架可以将必要的会话令牌和变量注入到请求当中。 使用 JWT 认证的 API 调用 ?...运行 php artisan jwt:secret 以生成签名应用程序令牌所需要的密钥。 完成之后,你需要决定哪些路由将受 JWT 保护并针对 JWT 进行身份验证。...在 API 的登录方法中,你将使用相同的 auth()- attempt 方法作为默认的 Laravel 应用程序,但从它返回的除外是你应该传递回的 JSON Web Token 令牌

8K31

Jenkins 支持 Github APP 身份验证

我很高兴的宣布在 Jenkins 中 GitHub 应用进行身份验证现已支持。这是许多用户期待已久的功能。...身份验证为 GitHub 应用带来了很多好处: 更高的请求频率限制 - GitHub 应用程序的速率限制随您的组织规模而定,而基于用户的令牌限制为 5000,无论您拥有多少存储库。...设置完成后,Jenkins 将验证您的凭据,并且您应该会看到新的速率限制。...这是一个大型组织的示例: 3 流水线中获取 API 令牌 除了将 GitHub App 身份验证用于多分支流水线之外,您还可以直接在流水线中使用 app 身份验证。...您只需照常加载“用户名/密码”凭据即可访问 GitHub API 的 Bearer 令牌,该插件将在后台处理 GitHub 的身份验证

1.3K20

关于 Node.js 的认证方面的教程(很可能)是有误的

与 Devise 相比,Passport 只是身份验证中间件,不会处理任何其他身份验证:这意味着 Node.js 开发人员可能会定制自己的 API 令牌机制、密码重置令牌机制、用户认证路由、端点、多种模板语言...错误三:API 令牌 API 令牌是凭据。它们与密码或重置令牌一样敏感。...让我们使用 JSON Web 令牌获取 API 凭据。拥有一个无状态的、可添加黑名单的、可自定义的令牌比十年来使用的旧 API 密钥/私密模式更好。...错误四:限速 如上所述,我没有在任何这些身份验证教程中找到关于速率限制或帐户锁定的问题。...请记住,速率限制还有助于可用性。跨平台文件加密工具是一个 CPU 密集型功能,没有速率限制功能,使用跨平台文件加密工具会让应用程序拒绝服务,特别是在 CPU 高数运行时。

4.5K90

JSON Web 令牌(JWT)是如何保护 API

让我们看下,我能否解释清楚 JWT 是如何在不引起你的注意下保护您的 APIAPI 验证 某些 API 资源需要限制访问 。例如,我们不希望一个用户能够更改另一个用户的密码。...这就是为什么我们保护某些资源,使用户在允许访问之前提供他的 ID 和密码——换句话说,我们对它们进行身份验证。...当服务器收到带有授权令牌的请求时,将发生以下情况: 1.它解码令牌并从有效载荷中提取ID。 2.它使用此ID在数据库中查找用户。 3.它将请求令牌与用户模型中存储的令牌进行比较。...如果它们匹配,则对用户进行身份验证。...https://robmclarty.com/blog/what-is-a-json-web-token [了解如何使用 JSON Web 令牌 ( JWT ) 进行身份验证]https://github.com

2K10

API OWASP 标准

API 管理 API 通过 API 管理发布 API 在开发人员门户中可见 API 只能通过 API 管理网关访问 请求 API 时强制执行速率限制API 进行更改时会自动维护规范 针对标准规范的每次更改验证端点规范...端点深度最多为 2 个资源(示例 /projects/123/tasks/345) 应用样式指南中的其他命名样式 API 有版本控制 版本控制策略最适合所选 API 管理平台和主要 API 使用者?...主版本在 URI 中(仅当 API 管理平台不支持基于客户端订阅的版本控制时) API 使用无状态处理(无会话,OpenID 连接令牌是可以的) 没有特殊处理(异步事件) HTTP 方法 GET -...(特定国家/地区的隐私和其他法律要求和商业机密要求) 是否根据评估的需要对传输中的数据和存储中的数据进行加密?...是否需要在实施前评估消息完整性(通常使用签名和加密的 JWT 令牌作为身份验证和确保完整性)? 是否根据评估的需要实施消息完整性? UUID 用于标识对象而不是内部 ID?

2.6K20

Laravel API教程:如何构建和测试RESTful API

在本文中,我们将探讨如何构建和测试使用Laravel进行身份验证的强大API。我们将使用Laravel 5.4,所有的代码都可以在GitHub上参考。...401:未经授权 用户需要进行身份验证。 403:禁止 用户通过身份验证,但没有执行操作的权限。 404: 未找到。当没有找到资源时,这将由Laravel自动返回。 500: 内部服务器错误。...注销 使用我们当前的策略,如果令牌错误或丢失,用户应该收到未经身份验证的响应(我们将在下一节中实现)。因此,对于一个简单的注销端点,我们将发送令牌,它将在数据库上删除。...out.'], 200); } 使用此策略,用户拥有的任何令牌都将无效,API将拒绝访问(使用中间件,如下一节所述)。...使用中间件限制访问 通过api_token创建,我们可以切换路由文件中的身份验证中间件: Route::middleware('auth:api') ->get('/user', function

20.2K20

API安全的概览

安全团队可以通过多种机制,如 API 密钥、令牌(如OAuth和JWT)、以及证书等来实现有效的身份验证。 与身份验证相对应的是授权,它决定了通过身份验证的用户所被授予的权限和访问级别。...通过使用 API 密钥、令牌和证书等手段,身份验证可以有效地保障系统的安全性。OAuth 和 JWT 是两种常见的令牌机制,它们为用户提供了一种安全、可控的访问方式。...限速和节流 API 安全性包括速率限制和节流机制,以防止滥用和过度使用 API 资源。速率限制限制特定实体在特定时间范围内可以发出的请求数量,而节流机制则限制处理请求的速度。...速率限制是一种控制 API 访问频率的方法,通过限制每个实体在一定时间内可以发起的请求数量,防止了滥用和过度使用 API 资源的可能性。...这些安全措施不仅有助于应对潜在的滥用和过度使用,还能提高系统的稳定性和可用性。通过合理配置速率限制和节流机制,可以平衡用户体验和系统资源的使用,确保 API 的安全性和稳定性。

14010

超越架构师!消息通知系统优化设计

API网关 将为生产者提供API接口,并将请求正确地路由到通知服务(Lambda)。 通知服务 类似后端服务,功能如下: 执行基本验证,以验证电子邮件、电话号码、设备令牌等。...关键是: 事件和推送通知中的安全性 通知模板和设置 可靠性和弹性 重试机制 速率限制 监视队列中的通知和事件跟踪 事件和推送通知的安全性 在存储敏感数据的情况下,我们应该启用DynamoDB的数据保护,...并使用IAM角色对DynamoDB的访问进行身份验证。 在访问资源方面实施最小权限原则 通过使用SSL/TLS与AWS资源通信,启用EventBridge的数据保护,以在传输中进行加密。...建议使用TLS 1.3。 对于iOS和Android应用,appKey和appSecret用于保护推送通知API。只有经过身份验证或经过验证的客户端才允许使用API发送推送通知。...重试机制 当SNS/第三方服务无法发送通知时,通知将被添加到死信队列进行重试。如果问题仍然存在,将向负责的开发人员发送警报。 速率限制 我们应该考虑礼貌地发送通知。

15210

系统设计:设计一个API限流器

•安全性: 通过限制允许用户执行的第二因素尝试次数(在2因素身份验证中),例如,允许用户尝试使用错误密码的次数。...十一、数据分片和缓存 我们可以基于“UserID”进行切分来分发用户的数据。对于容错和复制,我们应该使用一致的哈希。如果我们想对不同的API有不同的限制,我们可以选择对每个API的每个用户进行分片。...假设我们对createURL()API使用基于哈希的分区,我们可以对每个分区进行速率限制,以允许用户每分钟创建不超过3个短URL,以及每小时创建100个短URL。...缓存基于IP的限制时可能会出现另一个问题,因为黑客甚至可以从一台计算机上获得大量IPv6地址,所以让服务器耗尽跟踪IPv6地址的内存是很简单的! 用户:在用户身份验证之后,可以对API进行速率限制。...一旦通过身份验证,将向用户提供一个令牌,用户将在每次请求时传递该令牌。这将确保我们对具有有效身份验证令牌的特定API进行速率限制。但如果我们必须限制登录API本身?

3.9K102

面试题:设计限流器

我们不是在 API 服务器上设置速率限制器,而是创建一个速率限制器中间件,对你的 API 的请求进行限流。 让我们用下图中的一个例子来说明这种设计中的速率限制是如何工作的。...云微服务已经变得广泛流行,并且速率限制通常在称为API网关的组件中实现。API网关是个完全托管的服务,支持速率限制、SSL终止、身份验证、IP白名单、服务静态内容等。...如果您已经使用微服务架构,并在设计中包含API网关来执行身份验证、IP白名单等,您可以在API网关中添加速率限制器。 建立自己的限速服务需要时间。...无论是亚马逊和Stripe都使用这个算法来限制他们的API请求。令牌桶算法的工作原理如下: 令牌桶是具有预定义容量的容器。令牌以预设的速率周期性地放入桶中。一旦桶满了,就不会添加更多的令牌。...本文只讨论了应用程序级别(HTTP:第7层)的速率限制。可以在其它层上施加速率限制。例如,您可以使用iptables通过IP地址应用速率限制 使用客户端缓存,以避免频繁的API调用。

19910

API NEWS | 谷歌云中的GhostToken漏洞

他们用OAuth2令牌进行了测试,发现该令牌仍然可以访问其原始资源。...使用日志记录、报警系统和行为分析工具等技术来监视API使用情况,并进行及时响应。API令牌管理:对API访问进行令牌管理。为每个用户或应用程序发放唯一的API令牌,并定期刷新这些令牌以增强安全性。...禁用或撤销不再使用令牌。漏洞管理:定期进行API安全漏洞评估和渗透测试,发现和修复潜在的安全漏洞。确保API的安全性与最新的安全标准和最佳实践保持一致。...保护您的密码重置过程:攻击者使用的常见媒介是暴力破解密码重置过程。在密码重置终结点上强制实施速率限制或其他带外质询,以阻止暴力破解的尝试。...实施访问限制和登录失败锁定:限制用户尝试登录的次数,并在一定数量的失败尝试后锁定账户一段时间。这可以防止恶意用户使用暴力破解技术来猜测密码。

14920
领券