【问题标题】:Communication with server without INTERNET permission在没有 INTERNET 许可的情况下与服务器通信
【发布时间】:2015-06-15 05:13:08
【问题描述】:

我计划开发一个与我操作的服务器通信的 Android 应用。对android, httpurlconnection error 的答复表明HttpURLConnectionHttpsURLConnection 等类需要授予应用程序“完全网络访问”权限(android.permission.INTERNET)。论坛上的某个人告诉我,对于绝大多数应用程序,android.permission.INTERNET 对用户隐私的侵犯是不可接受的,并且还有其他方式可以让应用程序与其开发人员运营的服务器进行通信,而不需要这种侵犯性允许。来自this post

即使您查看流量,几乎所有应用程序都在使用 HTTP 与他们的服务通信,并且他们没有完全网络访问权限的合法需求,但同一个应用程序会要求完全的网络访问权限。但是,它可以让他们查看您的所有网络连接。

[...]

另外,不,您不需要“完全网络访问”来访问网络浏览器之外的任何内容。您只需要它关闭端口 80 HTTP。您仍然可以只为远程应用 API 使用子域。您将两种不同的权限混为一谈。

当我要求进一步说明如何在 Android 中实现这一点,以便我可以在 developer.android.com 上查找它时,回答是“你的无知并不能证明任何事情。”

那么在没有android.permission.INTERNET 的情况下,应用程序应该如何与其开发者操作的服务器通信呢?或者是否有可靠的消息来源表明这在 Android 中是不可能的?

【问题讨论】:

    标签: android network-programming httpurlconnection privacy android-permissions


    【解决方案1】:

    应用程序与其开发人员运营的服务器通信存在其他不需要此类侵入性权限的方式

    不是真的。

    据我从您链接到的咆哮中得知,咆哮者抱怨 Android 的权限系统中没有 IP 或主机级别的白名单。 INTERNET 授予对整个 Internet 的访问权限。这是对操作系统的有效抱怨,但应用程序开发人员对此无能为力。 用户可以,只要他们愿意安装防火墙类型的应用程序(伪 VPN 或真正的防火墙,后者需要 root)。 ROM 模组 可以。谷歌可以。设备制造商可以。应用开发者不能。

    我的意思是,理论上,该应用可以使用蓝牙(范围有限)或 NFC(确实范围有限)与服务器通信,但这些通常被认为是不切实际的。

    关于咆哮者声称“你不需要“完全网络访问”来访问网络浏览器之外的任何东西。你只需要它离开端口 80 HTTP”,这是相当荒谬的。例如,解析域名需要您“关闭端口 80 HTTP”,如果没有INTERNET 权限,这肯定会失败。

    我没有可以尝试使用纯 IP 地址的示例应用程序,因此我现在无法绝对验证在没有INTERNET 的情况下访问端口 80 上的纯 IP 地址是否可以工作。如果这被证明是真的,那就是 Android 中需要修复的安全漏洞,如果是这样,我会非常感到惊讶。

    或者是否有可靠的消息来源表明这在 Android 中是不可能的?

    我要说明的是,除了 localhost 之外,Android 应用没有不涉及 INTERNET 权限的实用方法与服务器通信。

    来源是否可靠是一种意见陈述。不过,我会将my track record 放在任何随机的 Slashdot 海报上。

    【讨论】:

    • outside of perhaps localhost 意思是在没有互联网的情况下使用本地主机可以吗?但是对于本地服务器,我的应用程序仍然可以与本地服务器通信吗?如果有办法没有互联网,那是什么方式。现在我正在使用AsyncHttpClient,它在没有互联网的情况下无法使用。
    【解决方案2】:

    查看您的 Android 设备上的应用。他们中的绝大多数将使用 INTERNET 权限。它们之所以有用,是因为它们能够与不同类型的各种 Web 服务进行通信。

    用户习惯于在安装应用程序时同意此权限,如果应用程序要求,也不会被推迟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      相关资源
      最近更新 更多