保护web api不被其他应用程序调用

时间:2014-10-29 16:41:03

标签: asp.net api security oauth asp.net-web-api

我正在开发一个asp.net web api应用程序,并使用OWIN和身份为我的aplication安全性实现oauth。对于每个注册用户,我还保存了here所述的客户端ID和哈希值。但我不希望其他开发人员能够使用我的api并使用他们拥有的客户端ID(和其他凭据)创建自己的应用程序。

有可能吗?

1 个答案:

答案 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