如何限制对api休息的调用

时间:2017-08-26 20:02:06

标签: javascript android ios api express

首先,抱歉这个问题的格式。我知道这个网站的规则,但我以前没有工作也没有调查,因为,基本上,我不知道从哪里开始......

我满足于我开始的提示。

我正在搜索如何限制来自(仅)本机移动应用程序(ios和android)的expressjs中的api休息调用。我在想象,但我不认为这是一个非常安全的想法,因为任何人都可以拿出令牌并模拟成为移动应用,或者我错了?

提前致谢!

3 个答案:

答案 0 :(得分:2)

您不能仅限本机移动应用程序限制对REST API的访问。互联网是开放的,可以从任何客户端访问,因此如果您有一个REST服务器,那么任何客户端都可以访问它,无论是否移动。

您可以通过身份验证控制访问权限。因此,通常做的是要求某种帐户访问权限,然后让您的服务器监视意外或未经授权的使用,如果找到,则禁用该帐户。

你也可以嵌入"秘密"您的移动应用中的凭据并将其用作SSL授权,但如果他们愿意,确定的黑客仍然可以从您的应用中获取凭据。

答案 1 :(得分:2)

您无法限制公共REST Api。您的移动用户发送的任何请求也可以由任何人发送。

也许你可以保守秘密'字符串和attcah到http请求,但它可以通过嗅探http流量或反编译apk轻松暴露。

您的最后一个选项是限制通过IP访问,但我不知道它是否适合您的情况。

答案 2 :(得分:1)

任何人都可以模拟任何API,它只需要一个嗅探器和对正确数据格式的理解(比如客户端应用程序发送的JSON对象的格式)。

任何人都可以继续,弄清楚WhatsApp如何工作并模拟这样的应用程序。当你首先让每个用户都到Sign up,然后“模拟器”也必须模拟那个过程时,甚至会发生这种情况。

但是,一般来说,开发人员想要的是:

  1. 人们使用他的应用
  2. 人们使用他的REST API
  3. 第1点意味着第2点,但第2点并不意味着第1点。如果没有您的应用程序,您无法阻止黑客或某人使用您的API,您可以使用某些技术减慢他的模拟器开发过程。

    然后你可能会问,他不能用数百万的请求充斥你的服务器?他当然可以。那是DoS attack。理论上,他甚至可以使用manny android模拟器并安装你的应用程序,然后用数百万的请求充斥你的服务器。

    任何人都可以使用您的API,如果您打开它到互联网世界。