我正在开发一个asp.net web api应用程序,并使用OWIN和身份为我的aplication安全性实现oauth。对于每个注册用户,我还保存了here所述的客户端ID和哈希值。但我不希望其他开发人员能够使用我的api并使用他们拥有的客户端ID(和其他凭据)创建自己的应用程序。
有可能吗?
答案 0 :(得分:1)
首先,您必须加密移动设备和API之间的网络流量。因为攻击者可以通过代理获取敏感数据(在这种情况下是API令牌)。此外,您需要执行SSL固定,因为您需要确保公钥是您的,否则攻击者可以使用相同的方法再次获取敏感数据。 (请查看:https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning)
您不应使用用户名/密码对用户进行身份验证。我建议您使用api密钥,因此您可以将用户操作发送到服务器端,如下面的模式。
https://example.com/api/APIKEYOVERHERE/action
您可以观看有关Secure Your API的讨论 - REST + JSON开发人员的提示。 https://www.youtube.com/watch?v=FeSdFhsKGG0