【问题标题】:Protect a web api from begin called by other apps保护 web api 不被其他应用程序调用
【发布时间】:2014-12-25 11:47:59
【问题描述】:

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

有可能吗?

【问题讨论】:

  • 这取决于您的应用程序设计。任何人都可以在您的应用程序中注册并拥有一个帐户吗?
  • 其实我有一个使用这个api的android应用,用户可以从android应用注册。

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


【解决方案1】:

首先,您必须加密移动设备和 API 之间的网络流量。因为攻击者可以通过代理获取敏感数据(本例中为 API Token)。此外,您需要进行 SSL Pinning,因为您需要确保公钥是您的,否则攻击者会设法使用相同的方法再次获取敏感数据。 (请查看:https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning

您不应使用用户名/密码对用户进行身份验证。我建议您使用 api 密钥,因此您可以像以下模式一样将用户操作发送到服务器端。

https://example.com/api/APIKEYOVERHERE/action

您也可以观看有关保护您的 API - REST + JSON 开发人员的技巧的演讲。 https://www.youtube.com/watch?v=FeSdFhsKGG0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2010-12-15
    相关资源
    最近更新 更多