我最近正在开发一个WebAPI项目,我将为其他Intranet Web应用程序打开一些端点,以便在我的OracleDB表空间中选择一些数据。我现在最关注的一个问题是保护WebAPI免受对我的API的无效调用。
我正在研究HMAC方法,我可以使用可以调用我的API的不同授权网络应用程序共享唯一密钥。
我的问题是,
假设我与WebApp A共享密钥A,使用WebApp B共享密钥B,WebApp A的开发人员是否可以使用密钥A和他的另一个WebApp C来访问我的API并进行授权'电话?与他们共享的密钥在其他应用程序中容易被滥用。
答案 0 :(得分:0)
当然,你的钥匙可以在任何地方使用。通常,HMAC方法旨在验证消息。换句话说,当您使用HMAC时,您100%确定,密钥所有者(密钥被泄露的情况除外)已向您发送请求。什么都不能阻止密钥所有者共享此密钥。但是,主要的是,从您的“主机” - API的角度来看,使用特定密钥签名的所有请求都应被视为相同的客户端,独立于他们在物理上是相同的应用程序。