所以我建立了一个ios& android应用程序,列出了一套书。 当您打开应用程序列出书籍时,无需帐户。
现在API位于example.com/api/list_books?page=1&per_page=10
,此API列出了书籍返回JSON数组。
现在任何人都可以访问此网址并获取我认为没问题的数据,因为无论如何数据都会在博客上列为帖子。
我的问题是,是否值得保护API以及如何?
如果我使用像JWT这样的东西,我认为这有点无意义,因为如果我向api/auth
请求获取令牌,我想家里的任何人都可以通过他们的路由器看到哪些数据发送到API ,用户和密码,因为它对每个人都是一样的,因为你只需打开应用程序并列出书籍。
这里有什么值得做的,因为这不是私人用户数据吗?如果是,您建议采用哪种解决方案?
感谢您的时间。
答案 0 :(得分:0)
我认为您必须回答的问题是,您认为您的API中的数据是否有价值。
如果有,并且您不希望有人窃取数据,您可以做一些事情来保护它。没有什么是完美的,您希望数据越安全,您需要投入更多精力。
如果您尚未使用HTTPS,则第一步是使用HTTPS。这有助于防止人们在途中拦截交通。
之后您的主要问题是您不知道用于访问API的内容。它可能不是您的软件,可以像脚本或其他人的应用程序一样容易。您可以做很多不同的事情来增加您的信心,只有授权的东西才能访问您的API。最常见的方法可能是在您的应用中嵌入API密钥。您可以使用此密钥将您的应用识别为授权用户。
只允许包含由密钥签名的某些数据的请求从API检索数据。您不能只发送密钥,因为有人可能只是通过MITM流量(即使使用https)并且很容易窃取它。
下一个问题是有人可以获取您的应用并对其进行反向工程以提取秘密。为了使这个问题变得更加困难,你可以对你的代码进行模糊处理,但是你仍然会在应用程序中提供密钥,如果有人超级确定,他们可能仍然可以使用它。
你可以做更多的事情,我为一家拥有商业解决方案的公司工作,该公司试图解决这个用例,但这确实是一个问题,即数据的价值有多大,你认为合理的努力程度是多少。保护它。