Android:有人可以知道不需要身份验证并滥用它们的 API 端点吗?



我有一个安卓应用程序。

我正在使用 api 端点,例如

/latest/articles
/archives/month
/search?q=term

现在我的应用程序适用于所有人。因此,不需要用户注册。它显示一些最新的文章和档案以及搜索

有人可以在没有源代码的情况下知道这些 API 端点吗?

有人可以在没有源代码的情况下知道这些 API 端点吗?

如果您担心滥用应用程序中的 API 链接或服务器链接,您应该了解嗅探,如果您甚至混淆代码,这些链接可能会被嗅探器监视。

但是,如果您只在Android端显示一些数据,则不应太担心,因为您没有对用户进行身份验证或执行重要操作,例如从Android端进行更新-编辑-删除,这会影响服务器。

TL;大卫:是的,有几种方法,但是,不要担心。只需按照教程进行操作,并尽可能混淆链接即可。

请注意,您也可以在Android端对这些端点+ API链接进行编码-解码

有人可以找出您的 API 端点吗?是的。

有多种方法可以找出您的端点,我将提到两种相对简单的方法:

  1. 为电话和检查请求设置代理

    • 攻击者将手机与已安装的应用程序连接到其设备。
    • 攻击者在手机上安装自己的证书,并通过运行嗅探软件的设备代理流量。
    • 攻击者现在能够以纯文本形式查看传出和传入请求,即使终结点位于 HTTPS 后面也是如此。
  2. 从APK逆向工程您的应用程序

    • 攻击者像任何其他用户一样下载并安装您的应用程序
    • 攻击者获取应用程序的APK(可以通过adb工具执行此操作(
    • 攻击者使用APKTOOL,dex2jar和JD-GUI等工具来获取和检查应用程序的源代码。

然后,攻击者会在您的应用程序中查找字符串,最终他们会找出您的端点。

正如其他答案所宣传的那样,混淆确实有助于隐藏您的端点,但它不会阻止任何人发现它们。作为一般经验法则,您永远不应该依靠混淆来隐藏您认为秘密的任何内容。

有人会滥用您的 API 端点吗?这要看情况。

如果所有端点都用于向应用程序提供其他公开可用的内容,则滥用可能不是问题。

但是,假设您手动选择将交付给应用程序用户的内容,并且用户购买您的应用程序,因为他们希望访问您精心挑选的内容。

在这种情况下,有人可能会滥用您不受保护的端点 - 他们可以访问您精心挑选的内容并将其提供给其他用户而无需付费(或者比用户必须向您支付的钱更少(。

第二个问题的答案实际上取决于您在端点上提供的信息类型以及您或您的用户对这些信息的重视程度。

最新更新