速率限制是一种简单但非常有效的技术,用于保护API免遭无意和恶意的过度使用。如果没有速率限制,任何人都可以用请求轰炸服务器并导致吞噬资源的流量高峰,“饿死”其他用户,并使服务无响应。本文介绍了速率限制以及限制到达 API 和服务的请求数量的重要性。我们解释什么是速率限制及其工作原理,并介绍可用于为您的用例采用速率限制的不同类型的算法。,,速率限制是限制用户可以对特定 API 或服务发出的请求数量的做法。您可以限制用户在特定时间范围内重复执行某项操作(即尝试登录帐户或发送消息)的频率。如果有人达到他们的限制,服务器将开始拒绝其他请求。速率限制既是网络安全预防措施,也是软件质量保证 (QA)的关键部分。公司使用速率限制来:,从技术上讲,速率限制是流量整形的一种形式。这种做法让您可以控制流量的流动和分配,以防止基础设施过载或出现故障。大多数具有速率限制的系统的上限都远高于即使是高容量用户也可以实际要求的上限。最常见的例子是社交媒体消息传递。所有社交媒体网站都对您可以发送给其他用户的直接消息的数量设置了上限。如果有人决定向其他配置文件发送一千条消息,速率限制就会启动并阻止用户在一段时间内发送消息。,以下列出了为什么速率限制是任何健康服务的重要方面的主要原因:,为了设置速率限制,管理员对用户在特定时间范围内可以向服务器或 API 发出的请求数量设置上限。通常,限速机制跟踪两个关键因素:,速率限制的主要指标是每秒事务数 (TPS)。如果单个 IP 地址在特定时间段内发出过多请求(即超过其 TPS 限制),则速率限制会阻止服务器或 API 响应。用户收到一条错误消息,并且在计时器重置之前无法发送进一步的请求。,,速率限制总是依赖于某种形式的节流机制来减慢或阻止请求。管理员在服务器端或客户端实施速率限制,具体取决于哪种策略更适合用例:,许多管理员还根据用户名设置速率限制。这种方法可以防止暴力攻击者尝试从多个 IP 地址登录。,让我们看看可用于控制对服务器或 API 的访问的不同类型的速率限制。请记住,您可以将不同类型组合成一个混合策略。例如,您可以限制基于 IP 地址和特定时间间隔的请求数量。, 基于时间的速率限制,基于时间的速率限制在预定义的时间间隔上运行。例如,服务器可以将请求限制为每个时间段的特定数量(例如每分钟 100 个)。基于时间的速率限制通常适用于所有用户。您可以将这些限制设置为固定(计时器倒计时,无论用户何时以及是否提出请求)或滑动(倒计时在有人发出第一个请求时开始)。, 地理速率限制,地理速率限制限制来自特定区域的请求数量。在运行基于位置的广告系列时,这些上限是一个很好的选择。管理员可以限制来自目标受众之外的请求并提高目标区域的可用性。,这些速率限制也有助于防止可疑流量。例如,您可以预测某个地区的用户在晚上 11:00 到早上 8:00 之间不太活跃。您为这次设置了较低的速率限制,这进一步限制了任何希望引起恶意流量问题的攻击者。,, 基于用户的速率限制,基于用户的速率限制控制单个用户在特定时间范围内可以执行的操作数。例如,服务器可能会将每个用户每天可以进行的登录尝试次数限制为 100 次。,基于用户的限制是最常见的速率限制类型。大多数系统跟踪用户的 IP 地址或 API 密钥(或两者)。如果用户超过设定的速率限制,应用程序会拒绝任何进一步的请求,直到每用户计数器重置。请记住,这种类型的速率限制需要系统维护每个用户的使用统计信息。此类设置通常会导致运营开销并增加总体IT 成本。, 并发率限制,并发率限制控制系统在特定时间范围内允许的并行会话数。例如,一个应用程序可能会在一分钟内阻止超过 1000 个会话。, 服务器速率限制,服务器速率限制可帮助管理员在不同服务器之间分担工作负载。例如,如果您运行一个包含五台服务器的分布式架构,您可以使用速率限制为每台设备设置一个上限。,如果其中一台服务器达到其上限,则设备会将其路由到另一台服务器或丢弃请求。这种策略对于实现高可用性和防止针对特定服务器的 DoS 攻击至关重要。, API 基于端点的速率限制,这些速率限制基于用户尝试访问的特定 API 端点。例如,出于安全或过载考虑,管理员可能会将对特定端点的请求限制为每分钟 50 个。, 速率限制算法,以下是公司实施速率限制所依赖的最常见算法:,以下是实施速率限制的分步指南(尽管设置限制的确切方式取决于您的特定技术栈):,对于大多数用例来说,实施速率限制是一个简单的过程。例如,如果您使用 Nginx 作为 Web 服务器并希望在服务器级别设置速率限制,您将使用 ngx_http_limit_req_module模块。只需将以下代码添加到 Nginx 配置文件中,即可根据用户的 IP 地址设置速率限制:,上面的代码平均每秒允许不超过 2 个请求,而突发不能超过 5 个请求。,速率限制对于 API、应用程序和网站的安全性和质量至关重要。未能限制请求数量会使您容易受到基于流量的攻击并导致性能不佳(这会导致更高的跳出率、客户保留问题等)。考虑到实施此预防措施有多么容易,对于大多数用例来说,设置速率限制是一个无需动脑筋的决定。, ,速率限制是一种简单但非常有效的技术,用于保护API免遭无意和恶意的过度使用。如果没有速率限制,任何人都可以用请求轰炸服务器并导致吞噬资源的流量高峰,“饿死”其他用户,并使服务无响应。本文介绍了速率限制以及限制到达 API 和服务的请求数量的重要性。我们解释什么是速率限制及其工作原理,并介绍可用于为您的用例采用速率限制的不同类型的算法。,为了设置速率限制,管理员对用户在特定时间范围内可以向服务器或 API 发出的请求数量设置上限。通常,限速机制跟踪两个关键因素:,
以信息传播的速度,人们很容易忘记互联网相对年轻。有了指数增长的潜力,首先是负面的预见,我们可以开始看到互联网在使用数据推动技术进步时的好处;和整个人类。,,致力于漏洞分析、开发和研究的网络安全项目现在正与行业领导者和公司合作,例如 Cisco Talos、Google, 和 IBM 的目的是故意暴露设计缺陷。故意破坏软件的努力本质上是恶意和粗鲁的。然而,这些蓄意攻击提供了透明度,促进了潜在威胁的安全加强。在实践中,好人最好在坏人利用漏洞之前发现它。零日漏洞在公开披露之前提供给供应商,使开发人员有机会实施补丁。这个想法是共同努力,因为谷歌等公司与 GNU 项目等自由软件项目合作,为开源项目提供了一个改进的平台。,使用分析数据保护用户,开源项目主要由社区驱动,许多项目是成员开发和研究贡献的产物。Open Web Application Security Project,缩写为OWASP,是一个致力于Web应用程序安全的非盈利组织。提供 Web App 安全和分析数据,这个开源社区对服务器级别有更直接的影响。虽然像思科、谷歌和 IBM 这样的大公司处于最前沿,但像 OWASP 这样的项目已经使用 2017 年收集的数据编制了Web 应用程序中的十大安全风险。,顶级网络安全风险,,网络安全的未来,了解风险是最好的防御措施。在一个漏洞百出的世界网络中,为看似不可避免的攻击做好准备是最大的财富。毫无疑问,安全始于个人。大多数 IT 专业人士同意,相关课程应该是一项要求。漏洞会随着技术的进步而出现,作为一个社区,我们可以看到数据和分析在创新中的重要性。, ,以信息传播的速度,人们很容易忘记互联网相对年轻。有了指数增长的潜力,首先是负面的预见,我们可以开始看到互联网在使用数据推动技术进步时的好处;和整个人类。,顶级网络安全风险,
使用代理服务器有什么好处?代理服务器为用户提供了多种好处。请务必注意,这些好处取决于代理的类型和配置。用户在使用代理之前应该始终找出代理的具体功能。,, 使用代理服务器会带来哪些安全风险?,与在 Internet 上运行的任何第三方服务一样,代理服务器并非没有网络风险。用户应了解与代理相关的常见风险,以确定它们是否适合用途。,, 使用代理服务器安全吗?,代理的安全最终归结为代理类型和服务器配置。用户必须了解他们使用的特定代理是如何运行的,然后才能通过它进行 Web 活动。虽然代理服务通过隐藏用户的 IP 地址为用户提供一些隐私,但代理本身会记录此信息以及浏览历史记录。根据代理的类型,此数据可能会转发给外部各方,从而导致数据泄露。,,一些代理没有配置加密,这意味着用户的在线活动以纯文本形式提供给任何人查看。除非代理服务器设置另有说明,否则用户应假定代理未加密,并自行承担使用未加密代理的风险。私人代理比公共代理更安全,因为它们为用户提供独占访问权限,而不是开放供互联网上的任何人使用。通常,免费代理使用起来最不安全,因为它们具有开放访问权限并且通常未加密。, 关于代理服务器的常见问题,代理服务器的定义是什么?代理服务器是位于用户和互联网之间的服务器。它充当网络网络攻击尝试的过滤器或压缩区。,代理服务器如何工作?当访问网站时,连接请求通过代理服务器路由到网站的服务器。然后,Web 服务器通过连接到代理服务器的 IP 地址进行响应,然后代理服务器将响应转发给用户。代理服务器建立并维护用户和 Web 服务器之间的每个连接。,代理服务器的用途是什么?代理服务器主要用于网络安全目的。因为它们位于用户和互联网之间,所以代理服务器可以阻止网络罪犯连接到专用网络。,代理服务器有哪些示例?代理服务器的一些流行示例包括:,代理服务器有什么好处?实施代理服务器有很多好处。使用代理服务器,您可以:, ,使用代理服务器有什么好处?代理服务器为用户提供了多种好处。请务必注意,这些好处取决于代理的类型和配置。用户在使用代理之前应该始终找出代理的具体功能。, 使用代理服务器安全吗?,
网络包括通过物理和/或无线连接连接的两个或多个计算系统。网络广泛使用点对点或客户端-服务器架构,除了用于连接系统相互通信的许多网络协议。,,网络安全是网络的一个子组。它涉及保护从核心到网络边界边缘的连接网络基础设施。通常由网络管理员管理,网络安全涉及实施 IT 安全策略和部署网络软件和硬件以:,对网络和计算机系统的一些最常见的威胁是:, 政策,IT安全政策确定了所有授权个人访问和使用组织的 IT 资产和资源的规则和程序。它是网络安全的主要文件。其目标是概述确保组织资产安全的规则。,今天的员工经常使用多种工具和应用程序来高效地开展业务。由组织文化驱动的政策支持这些惯例,并专注于为员工安全地启用这些工具。组织必须遵守的任何法规遵从性的执行和审计程序也必须在政策中列出。,, 执法,执法涉及分析所有网络流量,并应旨在保护网络上所有系统和信息的机密性、完整性和可用性。在实施保护方面,网络安全采用纵深防御模型,并遵循“CIA”三元组的原则:,强有力的执法努力为网络流量提供 CIA。首先是按应用程序、用户和内容对流量进行分类。作为内容的载体,所有应用程序都必须首先被防火墙识别,无论端口、协议、规避策略或加密如何。正确的应用程序识别提供了对其承载内容的全面可见性。通过识别应用程序并将其使用映射到用户身份,同时始终检查内容以维护 CIA 原则,可以简化策略管理。,纵深防御的概念被视为网络安全的最佳实践,规定了网络的分层保护。这些层应用各种安全控制来筛选试图进入网络的威胁:访问控制、识别、身份验证、恶意软件检测、加密、文件类型过滤、URL 过滤和内容过滤。,这些层是通过部署防火墙、入侵防御系统 (IPS)和防病毒组件构建的。在执行组件中,防火墙(一种访问控制机制)是网络安全的基础。,传统技术难以提供网络流量的 CIA。传统防火墙受到依赖端口和协议来识别应用程序的控件的困扰——这些应用程序现在已经开发出规避特性来绕过控件——以及 IP 地址等同于用户身份的假设。,下一代防火墙保留了访问控制任务,但重新设计了技术;他们观察所有端口的所有流量,可以对应用程序及其内容进行分类,并将员工识别为用户。这使得访问控制足够细致,可以在将 IT 安全策略应用于组织的每个员工时实施它,而不会影响安全性。,用于分层网络安全以实施纵深防御策略的附加服务已作为附加组件纳入传统模型。例如,IPS 和防病毒软件是扫描内容和防止恶意软件攻击的有效工具。但是,组织必须注意额外组件可能增加网络安全的复杂性和成本,更重要的是,不要依赖这些额外组件来完成防火墙的核心工作。,, 审计,审计网络安全的过程需要检查执行措施以确定它们与安全策略的一致性程度。审计通过要求组织在一致的基础上反思其政策的实施来鼓励持续改进。这使组织有机会在不断变化的需求领域调整其政策和执行策略。,防火墙、IPS、网络访问控制 (NAC) 以及安全信息和事件管理 (SIEM) 是网络安全的四个最重要的组成部分。其他包括数据丢失防护 (DLP);防病毒和反恶意软件;应用程序、网络和电子邮件安全;和更多。,鉴于几乎所有数据和应用程序都连接到网络,网络安全对于保护网络免受数据泄露至关重要。让您的网络遭到黑客攻击可能会破坏您组织的声誉并使您破产。一个好的网络安全系统可以帮助企业降低成为数据盗窃和破坏受害者的风险。, ,网络包括通过物理和/或无线连接连接的两个或多个计算系统。网络广泛使用点对点或客户端-服务器架构,除了用于连接系统相互通信的许多网络协议。,IT安全政策确定了所有授权个人访问和使用组织的 IT 资产和资源的规则和程序。它是网络安全的主要文件。其目标是概述确保组织资产安全的规则。,