未经互联网许可与服务器通信
Communication with server without INTERNET permission
我打算开发一个 Android 应用程序来与我操作的服务器进行通信。对 state that classes such as HttpURLConnection
and HttpsURLConnection
require granting the "full network access" permission (android.permission.INTERNET
) to the app. Someone on a forum told me that for the vast majority of apps, android.permission.INTERNET
is unacceptably intrusive on the user's privacy, and that there exist other ways for an app to communicate with a server operated by its developer that do not require such an intrusive permission. From this post 的回答:
And the same app will ask for full network access, even though if you look at the traffic, almost all of them are using HTTP to talk to their services, and they have no legit need for full network access. However, it lets them look at what all your network connections are.
[...]
Also, no, you don't need "full network access" to access anything outside a web browser. You only need it to go off port 80 HTTP. You can still just use a subdomain for the remote app API. You're conflating two different permissions.
当我要求进一步说明如何在 Android 中进行此操作以便我可以去 developer.android.com 上查找时,回复是 "your ignorance doesn't demonstrate anything."
那么在没有 android.permission.INTERNET
的情况下,应用程序应该如何与其开发者运营的服务器通信?或者是否有可靠消息来源表明这在 Android 中是不可能的?
查看您 Android 设备上的应用程序。其中绝大多数会使用 INTERNET 权限。它们之所以有用,是因为它们能够与各种不同类型的 Web 服务对话。
用户习惯于在安装应用程序时同意此权限,并且不会在应用程序要求时被推迟。
that there exist other ways for an app to communicate with a server operated by its developer that do not require such an intrusive permission
不是真的。
据我从您链接到的咆哮中可以看出,咆哮者抱怨说 Android 的权限系统中没有可能的 IP 或主机级白名单。 INTERNET
授予对整个 Internet 的访问权限。这是对 OS 的有效投诉,但应用程序开发人员对此无能为力。 用户 可以,只要他们愿意安装防火墙类型的应用程序(伪 VPN 或真正的防火墙,后者需要 root 权限)。 ROM 修改器 可以。 Google 可以。设备制造商可以。应用开发者不能。
我的意思是,理论上,该应用程序可以使用蓝牙(范围有限)或 NFC(确实 范围有限)与服务器通信,但这些通常被认为是不切实际的.
关于咆哮者声称 "you don't need " 完全网络访问“以访问 Web 浏览器之外的任何内容。您只需要它离开端口 80 HTTP”,这是相当荒谬的。例如,解析域名需要您 "go off port 80 HTTP",如果没有 INTERNET
权限,那肯定会失败。
我没有可以尝试使用普通 IP 地址的示例应用程序,因此我现在无法绝对验证在没有 INTERNET
的情况下访问端口 80 上的普通 IP 地址是否可行.如果这被证明是真的,那就是 Android 中的一个安全漏洞,需要修复,如果是这种情况,我会 非常 感到惊讶。
Or is there a reliable source stating that this is impossible in Android?
我要声明,Android 应用程序与服务器通信没有实际的方法,可能 localhost
之外,不涉及 INTERNET
权限。
来源是否可靠是一种意见陈述。不过,我会将 my track record 与任何随机的 Slashdot 海报进行对比。
我打算开发一个 Android 应用程序来与我操作的服务器进行通信。对 state that classes such as HttpURLConnection
and HttpsURLConnection
require granting the "full network access" permission (android.permission.INTERNET
) to the app. Someone on a forum told me that for the vast majority of apps, android.permission.INTERNET
is unacceptably intrusive on the user's privacy, and that there exist other ways for an app to communicate with a server operated by its developer that do not require such an intrusive permission. From this post 的回答:
And the same app will ask for full network access, even though if you look at the traffic, almost all of them are using HTTP to talk to their services, and they have no legit need for full network access. However, it lets them look at what all your network connections are.
[...]
Also, no, you don't need "full network access" to access anything outside a web browser. You only need it to go off port 80 HTTP. You can still just use a subdomain for the remote app API. You're conflating two different permissions.
当我要求进一步说明如何在 Android 中进行此操作以便我可以去 developer.android.com 上查找时,回复是 "your ignorance doesn't demonstrate anything."
那么在没有 android.permission.INTERNET
的情况下,应用程序应该如何与其开发者运营的服务器通信?或者是否有可靠消息来源表明这在 Android 中是不可能的?
查看您 Android 设备上的应用程序。其中绝大多数会使用 INTERNET 权限。它们之所以有用,是因为它们能够与各种不同类型的 Web 服务对话。
用户习惯于在安装应用程序时同意此权限,并且不会在应用程序要求时被推迟。
that there exist other ways for an app to communicate with a server operated by its developer that do not require such an intrusive permission
不是真的。
据我从您链接到的咆哮中可以看出,咆哮者抱怨说 Android 的权限系统中没有可能的 IP 或主机级白名单。 INTERNET
授予对整个 Internet 的访问权限。这是对 OS 的有效投诉,但应用程序开发人员对此无能为力。 用户 可以,只要他们愿意安装防火墙类型的应用程序(伪 VPN 或真正的防火墙,后者需要 root 权限)。 ROM 修改器 可以。 Google 可以。设备制造商可以。应用开发者不能。
我的意思是,理论上,该应用程序可以使用蓝牙(范围有限)或 NFC(确实 范围有限)与服务器通信,但这些通常被认为是不切实际的.
关于咆哮者声称 "you don't need " 完全网络访问“以访问 Web 浏览器之外的任何内容。您只需要它离开端口 80 HTTP”,这是相当荒谬的。例如,解析域名需要您 "go off port 80 HTTP",如果没有 INTERNET
权限,那肯定会失败。
我没有可以尝试使用普通 IP 地址的示例应用程序,因此我现在无法绝对验证在没有 INTERNET
的情况下访问端口 80 上的普通 IP 地址是否可行.如果这被证明是真的,那就是 Android 中的一个安全漏洞,需要修复,如果是这种情况,我会 非常 感到惊讶。
Or is there a reliable source stating that this is impossible in Android?
我要声明,Android 应用程序与服务器通信没有实际的方法,可能 localhost
之外,不涉及 INTERNET
权限。
来源是否可靠是一种意见陈述。不过,我会将 my track record 与任何随机的 Slashdot 海报进行对比。