Rest 有没有办法保护公共端点?

Rest 有没有办法保护公共端点?,rest,security,Rest,Security,我认为公共RESTAPI(如注册端点)不能对用户进行身份验证,这是对的。例如,我们的端点应该只接受来自移动应用程序和未来web应用程序的请求 我很确定这在逻辑上是不可能的。我认为苹果和谷歌提供了一种方式(像ca一样),让服务器识别来自注册设备的请求,但这会将API更改为私有API。因为身份验证基本上被移动到应用商店,所以只有应用商店帐户的所有者才能使用它 因此,让它完全公开防止机器人攻击它的唯一方法是使用电子邮件确认,如果在x时间内未确认,则自动删除,并限制IP速率 一位承包商建议我们在每个应用

我认为公共RESTAPI(如注册端点)不能对用户进行身份验证,这是对的。例如,我们的端点应该只接受来自移动应用程序和未来web应用程序的请求

我很确定这在逻辑上是不可能的。我认为苹果和谷歌提供了一种方式(像ca一样),让服务器识别来自注册设备的请求,但这会将API更改为私有API。因为身份验证基本上被移动到应用商店,所以只有应用商店帐户的所有者才能使用它

因此,让它完全公开防止机器人攻击它的唯一方法是使用电子邮件确认,如果在x时间内未确认,则自动删除,并限制IP速率

一位承包商建议我们在每个应用程序中使用一个硬编码的唯一密钥,但在我看来,这听起来不合逻辑,完全错误。当用户在其设备上下载应用程序时,应用程序和服务器之间的秘密就会被泄露


那么,我对密钥的看法是否正确,是否有其他方法可以从机器人程序中保护端点?我唯一能想到的另一件事就是使用验证码。

这里有两种不同的东西

保护公共REST API的安全 如果攻击者下载应用程序并对其进行反向工程,则即使是非对称的机密也会被泄露,这是正确的。攻击者可以使用调试器、Chrome开发者工具和Wireshark等工具进行反向工程并找到秘密

通常,攻击者可以模仿应用程序或用户的行为,即以非常相似的模式模拟相同的请求

在当今的行业中,解决这一问题的方法是尽可能多地使用适用于web、移动和API的工具(并且越来越多地使用这些工具)过滤掉这些攻击者

工具越好,攻击者需要做的工作就越多,因此攻击者愿意做的事情就越少,因此被攻击的机会就越小

安全认证 身份验证是上述情况的一个具体例子,但是这个问题是web应用程序当前面临的最大问题之一

目前采用的主要解决方案是bot过滤技术,例如CAPTCHA(足智多谋的攻击者可以克服),以及多因素身份验证

如今,不用电子邮件就可以注册是很少见的,然而,像这样的服务可以用来克服这一问题。实际上,设置自己的邮件服务器也不是很困难

登录更加困难,因为你不能期望人们通过电子邮件,甚至其他MFA方法也会变得非常烦人。您的银行账户可以使用MFA,但Domino的比萨饼账户不能使用MFA

正因为如此,网络攻击的最新流行是


所有提供WAF和bot管理的安全供应商也尝试保护API,如注册和登录,取得了不同程度的成功。甚至有专门的产品开始出现。

这里有两种不同的东西

保护公共REST API的安全 如果攻击者下载应用程序并对其进行反向工程,则即使是非对称的机密也会被泄露,这是正确的。攻击者可以使用调试器、Chrome开发者工具和Wireshark等工具进行反向工程并找到秘密

通常,攻击者可以模仿应用程序或用户的行为,即以非常相似的模式模拟相同的请求

在当今的行业中,解决这一问题的方法是尽可能多地使用适用于web、移动和API的工具(并且越来越多地使用这些工具)过滤掉这些攻击者

工具越好,攻击者需要做的工作就越多,因此攻击者愿意做的事情就越少,因此被攻击的机会就越小

安全认证 身份验证是上述情况的一个具体例子,但是这个问题是web应用程序当前面临的最大问题之一

目前采用的主要解决方案是bot过滤技术,例如CAPTCHA(足智多谋的攻击者可以克服),以及多因素身份验证

如今,不用电子邮件就可以注册是很少见的,然而,像这样的服务可以用来克服这一问题。实际上,设置自己的邮件服务器也不是很困难

登录更加困难,因为你不能期望人们通过电子邮件,甚至其他MFA方法也会变得非常烦人。您的银行账户可以使用MFA,但Domino的比萨饼账户不能使用MFA

正因为如此,网络攻击的最新流行是

所有提供WAF和bot管理的安全供应商也尝试保护API,如注册和登录,取得了不同程度的成功。甚至有专门的产品开始出现