Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果需要,保护API_Android_Ios_Api_Security_Mobile - Fatal编程技术网

Android 如果需要,保护API

Android 如果需要,保护API,android,ios,api,security,mobile,Android,Ios,Api,Security,Mobile,因此,我构建了一个ios和android应用程序,其中列出了一套书籍。 在书籍列表中打开应用程序时,不需要帐户 现在,API位于example.com/API/list_books?page=1&per_page=10,该API列出书籍并返回一个JSON数组 现在任何人都可以访问这个URL并获取数据,我认为这很好,因为这些数据在博客上以帖子的形式列出 我的问题是,保护API是否值得,以及如何保护? 如果我使用像JWT这样的东西,我认为这是没有意义的,因为如果我请求api/auth来获取令牌,我想

因此,我构建了一个ios和android应用程序,其中列出了一套书籍。 在书籍列表中打开应用程序时,不需要帐户

现在,API位于
example.com/API/list_books?page=1&per_page=10
,该API列出书籍并返回一个JSON数组

现在任何人都可以访问这个URL并获取数据,我认为这很好,因为这些数据在博客上以帖子的形式列出

我的问题是,保护API是否值得,以及如何保护?

如果我使用像JWT这样的东西,我认为这是没有意义的,因为如果我请求
api/auth
来获取令牌,我想家里的任何人都可以通过他们的路由器看到发送到api的数据、用户和密码,因为这对每个人来说都是一样的,因为你只需打开应用程序,书籍就会被列出

由于这不是私人用户数据,因此值得在这里做任何事情吗?如果是,您建议什么解决方案?


谢谢您的时间。

我认为您必须回答这样一个问题:您认为API中的数据是否有价值,或者可能有价值

如果有,并且你不希望有人窃取数据,你可以做很多事情来保护它。没有什么是完美的,您希望数据越安全,就需要投入越多的精力

第一步是使用HTTPS,如果您还没有。这有助于防止人们在途中拦截交通

在这之后,您的主要问题是您不知道用于访问API的是什么。它可能不是你的软件,也可能是脚本或其他人的应用程序。您可以做很多不同的事情来增强您的信心,即只有授权的东西才能访问您的API。最常见的方法可能是在应用程序中嵌入API密钥。您可以使用此密钥将您的应用程序标识为授权应用程序

仅允许包含由密钥签名的某些数据的请求从API检索数据。你不能仅仅发送密钥,因为有人可能仅仅限制流量(即使使用https),然后很容易窃取它

下一个问题是,有人可能会获取你的应用程序,并对其进行反向工程以提取秘密。为了让这变得更困难,你可以混淆你的代码,但你仍然在应用程序中提供密钥,如果有人下定决心,他们可能仍然可以使用它


你还可以做更多的事情,我为一家公司工作,该公司有一个商业解决方案,试图解决这个用例,但这确实是一个数据有多大价值的问题,以及你认为有多少努力可以合理地尝试和保护它。

如果它是公开的,我真的看不到任何真正保护它的选择。如果你担心滥用,你可以根据ip地址限制你的api。