这更像是一个一般性的问题,但保护注册过程中使用的API的推荐方法是什么?假设有这些公共API(不需要用户凭证,只有API密钥);
- find_person(关于试图注册的人的数据),如果某人已经存在或不存在,则返回(不需要用户凭据,也不返回敏感信息)
- create_person(关于试图注册的人的数据),将此人创建到系统中(不需要用户凭据)
我们可以拥有";匿名的";拥有短期JWT代币的用户?例如,SPA Web应用程序或移动应用程序如何安全地获得";每次会话";匿名用户?Captchas在这种情况下真的有用吗?
我们已经在考虑:
- 每个应用程序的API密钥(不是每个会话)
- 速率限制
- 用于保护API的DDoS服务
如有任何帮助,我们将不胜感激。
感谢
短期JWT代币
我们可以拥有"匿名的";拥有短期JWT代币的用户?
是的,您可以并且建议您甚至为已登录的用户这样做。查看Auth0博客什么是刷新令牌以及如何安全使用它们:
本文将探讨OAuth 2.0定义的刷新令牌的概念。我们将了解它们与其他代币类型的比较,以及它们如何让我们平衡安全性、可用性和隐私。
为匿名用户或登录用户使用令牌的问题在于,他们只识别请求中的用户,而不识别执行请求的内容。
访问API服务器的世界卫生组织和什么不同
我写了一系列关于API和移动安全的文章,在文章中,为什么你的移动应用程序需要API密钥?您可以详细阅读谁和什么访问您的API服务器之间的区别,但我将在这里提取它的主要内容:
what是向API服务器发出请求的东西。它真的是你的移动应用程序的真实实例,还是机器人程序、自动脚本或攻击者用Postman这样的工具手动在你的API服务器上戳来戳去?
谁是移动应用程序的用户,我们可以通过多种方式对其进行身份验证、授权和识别,例如使用OpenID Connect或OAUTH2流。
因此,请考虑谁作为用户(匿名或已登录),您的API服务器将能够对数据进行身份验证和授权访问,并考虑what是代表用户发出请求的软件。
您可能的解决方案
我们已经在考虑:
- 每个应用程序的API密钥(不是每个会话)
- 速率限制
- 用于保护API的DDoS服务
这是任何API都应该实施的基本安全措施,但如果要让API服务器高度相信该请求确实来自它所期望的应用程序的真实和无限制版本,这些措施就不够了。
您可以在我的文章The Top 6 Mobile API Protection Techniques-Are They Enough?中阅读更多关于移动API保护技术的信息:
在这篇文章中,我们将探讨用于保护API的最常见技术,包括使用HTTPS保护移动应用程序和API之间的通信通道有多重要,如何使用API密钥在每个API请求上识别移动应用程序,以及用户身份验证对移动安全和api安全的重要性。我们将讨论这些技术中的每一种,并讨论它们如何影响业务风险状况,即它们有多容易绕过。
读者会理解为什么今天常用的移动API保护技术非常幼稚,不适合用于保护数字企业免受API滥用。API滥用的形式多种多样,大多数企业都意识到这一点,因此采用正确的技术来维持收入和品牌声誉非常重要。
其他可能的解决方案
例如,SPA Web应用程序或移动应用程序如何安全地获得";每次会话";匿名用户?
使用web应用程序,只需使用浏览器上的开发工具就可以很容易地内省它们并查看API请求和响应。
对于移动应用程序来说,需要做更多的工作,但大量的开源工具使其变得容易,在某些情况下甚至微不足道,甚至非开发人员也可以做到这一点,从而使保护API服务器的任务变得非常困难,但并非不可能。
因此,对于网络和移动设备完全不同的工作方式,保护它们的方法也会有所不同。
对于Web应用程序
Captchas在这种情况下真的有用吗?
Captcha会给您打分,告诉您请求中的可能是真人。在最好的分数下,它不能高度自信地保证请求的内容确实是您的API服务器所期望的内容,即您的web或移动应用程序的真实且无限制的版本。
要学习一些有用的技术来帮助您的API后端尝试仅响应来自您所期望的的请求,您可以阅读我对从应用程序调用中保护API数据问题的回答,特别是专门用于保护API服务器的部分。
对于移动应用程序
这更像是一个一般性的问题,但保护注册过程中使用的API的推荐方法是什么?
尽管不是专门针对注册过程,但我建议您阅读我对问题的回答如何确保移动应用程序的API REST安全,尤其是加强和屏蔽移动应用程序、保护API服务器和可能的更好解决方案部分。
根据这个答案,可以采用的更好方法是使用移动应用验证解决方案,使API服务器能够知道只接收来自的请求,它期望的是移动应用的真实和无限制版本。
你想多跑一英里吗
在回答安全问题时,我总是喜欢引用OWASP基金会的出色工作。
对于APIS
OWASP API安全前10名
OWASP API安全项目旨在通过强调不安全API中的潜在风险并说明如何减轻这些风险,为软件开发人员和安全评估人员提供价值。为了实现这一目标,OWASP API安全项目将创建并维护API十大安全风险文档,以及创建或评估API时最佳实践的文档门户。
适用于移动应用程序
OWASP移动安全项目-十大风险
OWASP移动安全项目是一个集中的资源,旨在为开发人员和安全团队提供构建和维护安全移动应用程序所需的资源。通过该项目,我们的目标是对移动安全风险进行分类,并提供开发控制,以减少其影响或被利用的可能性。
OWASP-移动安全测试指南:
《移动安全测试指南》(MSTG)是一本关于移动应用程序安全开发、测试和逆向工程的综合手册。
适用于Web应用程序
网络安全测试指南:
OWASP Web安全测试指南包括一个";最佳实践";用户可以在他们自己的组织中实现的渗透测试框架;低电平";渗透测试指南,描述了测试最常见的web应用程序和web服务安全问题的技术。