Int*_*nex 5 security authentication rest client-side-attacks
我正在构建一个应用程序,我需要在客户端前端应用程序中向外部 API 发出请求,但我对如何使其最大程度地安全以便仅转发有效请求感到有点困惑到这个外部API,而不是任何人想要的。
作为安全性的第一步,我已经做到了这一点,以便客户端应用程序无法直接与外部 API 对话,而是必须访问我们自己的服务器端 API,然后服务器端 API 将请求代理到外部 API,这样访问外部 API 的凭据至少只存储在服务器端而不是客户端。
然而,这导致了同样的基本问题 - 如何保护我用来验证从客户端应用程序向我们自己的服务器端应用程序发出的请求的任何凭证/身份验证系统?
问题是,这是一项在线餐厅订购服务,因此我们不希望用户在能够下订单之前使用用户名和密码等进行身份验证,因此触发外部 API 调用的下订单是不存在的。 t 位于任何用户名/密码方案后面,并且必须可供前端应用程序的所有使用者使用。
这里的最佳安全实践是什么?我已启用 CORS 白名单作为最低限度的做法,这样理论上我们的服务器端 API 端点只允许来自我们自己域的请求,但如果有人选择仅欺骗原始 URL,则可以轻松绕过 CORS。
还有哪些其他选择?我确信我一定是错过了一些微不足道的东西,因为这一定是一个已经建立的最佳实践中非常常见的问题,但我只是不知何故未能找到它。
谢谢你!
作为 API 和移动安全的开发者倡导者,看到真正关心应用程序安全性的开发者总是让我微笑,尤其是当他们已经表现出为保护应用程序安全付出了一些努力时,因此请接受我对您的努力的祝贺。
我正在构建一个应用程序,我需要在客户端前端应用程序中向外部 API 发出请求,但我对如何使其最大程度地安全以便仅转发有效请求感到有点困惑到这个外部API,而不是任何人想要的。
因此,您还没有详细说明它是网络应用程序还是移动应用程序,一旦我的专业知识依赖于移动和 API 安全性,我将假设它是移动应用程序来回答。
问题是,这是一项在线餐厅订购服务,因此我们不希望用户在能够下订单之前使用用户名和密码等进行身份验证,因此触发外部 API 调用的下订单是不存在的。 t 位于任何用户名/密码方案后面,并且必须可供前端应用程序的所有使用者使用。
您需要解决一个复杂的挑战,因为您有一个向公众开放的应用程序,没有任何类型的用户身份验证/身份验证,但这需要对下划线资源的访问规则,就好像它是在用户身份验证和授权后面一样,但即使是这样,它仍然很容易被滥用。
为了理解为什么我需要澄清我通常在任何级别的开发人员中发现的一个误解,即访问 API 服务器的人与物之间的差异。
我撰写了一系列有关 API 和移动安全的文章,并在文章《为什么您的移动应用程序需要 Api 密钥?》中 您可以详细阅读访问 API 服务器的人员和内容之间的区别,但我将在此摘录其中的主要内容:
向 API 服务器发出请求的是什么。它真的是您的移动应用程序的真实实例,还是机器人、自动化脚本或攻击者使用 Postman 等工具手动探查您的 API 服务器?
我们可以通过多种方式(例如使用 OpenID Connect 或 OAUTH2 流)对移动应用程序的用户进行身份验证、授权和识别。
考虑谁作为您的 API 服务器将能够对数据进行身份验证和授权访问的用户,并考虑代表用户发出该请求的软件是什么。
因此,在您的情况下,您无法识别请求中的人员,因此您需要一个解决方案,能够使 API 后端非常确信该请求确实来自其所期望的内容,是真实且未经修改的实例你的应用程序。
我正在构建一个应用程序,我需要在客户端前端应用程序中向外部 API 发出请求,但我对如何使其最大程度地安全以便仅转发有效请求感到有点困惑到这个外部API,而不是任何人想要的。
这需要非常先进的解决方案才能正确保护,因此实现起来并不像您想象的那么简单:
我确信我一定是错过了一些微不足道的东西,因为这一定是一个已经建立的最佳实践中非常常见的问题,但我只是不知何故未能找到它。
是的,这是一个经常被忽视或没有得到正确解决的常见问题,解决这个问题的第一步是清楚地了解请求中的人员和内容之间的区别,否则设计的解决方案将无法解决问题正确发出。
在这里,我建议您仔细阅读我对问题如何保护移动应用程序的 API REST?,特别是“强化和屏蔽移动应用程序” 、“保护 API 服务器安全”和“可能的更好解决方案”部分。
本答案将向您展示几种解决方案,例如 WAF 和 UBA,但最后建议使用移动应用程序认证概念。
简而言之,移动应用程序证明将使 API 后端非常确信该请求确实来自其期望的内容,即移动应用程序的真实且经过修改的实例。
您可以学习一些有用的技术来帮助您的 API 后端尝试仅响应来自您期望的真实 Web 应用程序的请求,为此,我邀请您阅读我对问题的回答:保护来自调用的 api 数据该应用程序,尤其是专门用于防御 API 服务器的部分。
在回答安全问题时,我总是喜欢参考 OWASP 基金会的出色工作。
OWASP API 安全项目旨在通过强调不安全 API 的潜在风险并说明如何减轻这些风险,为软件开发人员和安全评估人员提供价值。为了实现这一目标,OWASP API 安全项目将创建并维护十大 API 安全风险文档,以及创建或评估 API 时最佳实践的文档门户。
OWASP 移动安全项目是一个集中资源,旨在为开发人员和安全团队提供构建和维护安全移动应用程序所需的资源。通过该项目,我们的目标是对移动安全风险进行分类并提供开发控制以减少其影响或被利用的可能性。
移动安全测试指南 (MSTG) 是移动应用安全开发、测试和逆向工程的综合手册。
OWASP Web 安全测试指南包括用户可以在自己的组织中实施的“最佳实践”渗透测试框架和描述测试最常见 Web 应用程序和 Web 服务安全问题的技术的“低级”渗透测试指南。
| 归档时间: |
|
| 查看次数: |
3698 次 |
| 最近记录: |