如果需要,保护 API

问题描述 投票:0回答:1

我构建了一个 iOS 和 Android 应用程序,列出了一组书籍。 当您打开列出书籍的应用程序时,不需要帐户。

现在 API 位于

example.com/api/list_books?page=1&per_page=10
,此 API 列出书籍并返回 JSON 数组。

现在任何人都可以访问此 URL 并获取数据,我认为这很好,因为数据无论如何都会作为帖子列在博客上。

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

如果我使用 JWT 之类的东西,我认为这有点毫无意义,因为如果我向

api/auth
发出请求来获取令牌,我认为家里的任何人都可以通过他们的路由器看到发送到 API 的数据、用户和密码,因为这对每个人来说都是一样的,因为您只需打开应用程序并列出书籍即可。

既然这不是私人用户数据,是否值得在这里做任何事情?如果是,您建议什么解决方案?

android ios security mobile
1个回答
0
投票

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

如果有并且您不希望有人窃取数据,您可以采取很多措施来保护它。没有什么是完美的,您希望数据越安全,您就越需要付出更多的努力。

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

之后您的主要问题是您不知道正在使用什么来访问您的 API。它可能不是您的软件,也可能是脚本或其他人的应用程序。您可以采取多种不同的措施来增强您的信心,确保只有经过授权的事物才能访问您的 API。最常见的方法可能是在您的应用程序中嵌入 API 密钥。您可以使用此密钥来识别您的应用程序是否已获得授权。

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

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

您还可以做更多的事情,我所在的公司有一个商业解决方案,试图解决这个用例,但这实际上是一个问题:数据有多大价值,以及您认为尝试和保护它需要付出多少努力是合理的.

© www.soinside.com 2019 - 2024. All rights reserved.