【问题标题】:Is it possible to have an ASP.NET Web API that can be only accessed by mobile native apps (iOS, Android, Windows Phone, etc.)?是否有可能拥有只能由移动本机应用程序(iOS、Android、Windows Phone 等)访问的 ASP.NET Web API?
【发布时间】:2016-04-21 13:33:32
【问题描述】:

假设我有一个不需要授权的公共 Web API,例如:

public class MobileDataController : ApiController
{
    [AllowAnonymous]
    public IEnumerable<string> Get()
    {
         return new string[] { "One", "Two", "Three" };
    }
}

是否可以使此 Web API 仅适用于我的 iPhone 和 Android 原生应用程序?

基本上我不希望 Web API 处理任何不是来自我的手机本机应用程序的请求。

【问题讨论】:

标签: iphone asp.net-web-api asp.net-web-api2 asp.net-core-mvc


【解决方案1】:

没有。您想要的是所谓的设备证明,这是捆绑在Trustworthy Computing 下的一个概念。但是这是不可能的,除非您拥有该设备并且可以确保它不会被越狱并且所有通信都不会被拦截。

无论您添加什么代码,攻击者都可以对其进行逆向工程。攻击者可以使用 fiddler 添加您发送的标头以表明它是移动设备。如果您将 OAuth 与客户端 ID 一起使用,则客户端 ID 需要在您的软件中,因此可以通过逆向工程排除。

例如,SnapChat 不支持 Windows Phone。有适用于 Windows Phone 的 SnapChat 克隆,SnapChat 唯一能做的就是提交删除通知,因为如果做得好,它们与运行在 iPhone 上的真实客户端无法区分。

【讨论】:

  • blowdart - 嗯 - 有什么可以让黑客机器人更难地使用我们的 Web API。例如,在 Web 应用程序中,我们使用 Google Recaptcah 来确保它是人类。我们可以对 iPhone 或 Android 原生应用做类似的事情吗?
  • 没有任何真正的成功。
猜你喜欢
  • 1970-01-01
  • 2010-10-13
  • 2018-11-12
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 2023-03-15
  • 2019-05-02
  • 1970-01-01
相关资源
最近更新 更多