27

情况

Alice 使用一个在线银行网站,该网站存储了她的凭据的 cookie。

在 cookie 过期之前,Eve 向 Alice 发送了一个恶意 URL,这随后导致 Alice 从她的银行账户中提取资金并将其发送给 Eve。

这是 Web 应用程序的常见 CSRF 示例,但在移动应用程序内部执行此操作有多可行?


如果 Alice 在她的手机上使用一个存储 cookie 的银行应用程序,然后访问 Eve 的一个具有类似结果的站点,该怎么办?

Alice 的移动设备上来自本地(或混合)应用程序的 cookie 是否容易受到操纵,或者这些 cookie 通常会以某种方式在设备上沙盒化?

我会假设 iOS、Android 等上的 cookie 与普通浏览器的工作方式相同,但实际上是这样吗?

编辑:

这个问题最初是为了在所有移动设备上通用。我相信,即使是在 JavaScript 中创建一个 cookie,然后使用 PhoneGap 或 Titanium 之类的东西也可能是相关的。在阅读了更多内容之后,我也很好奇使用这些其他技术之一编译 JavaScript 是否会影响本机设备的 cookie 以及它们如何存储它们。

使用 cookie 的主要目的是维护用户的凭据,这样他们就不必每次都使用他们的银行帐户注销并重新登录。在阅读了有关此问题的更多信息后,似乎每个特定设备都有不同的场景,实际上可以对应用程序进行 CSRF。例如, Android 中的Shared Preferences被沙盒化以防止其他应用程序访问这些值。

4

2 回答 2

22

Alice 的移动设备上来自本地(或混合)应用程序的 cookie 是否容易受到操纵,或者这些 cookie 通常会以某种方式在设备上沙盒化?

CSRF 攻击涉及一个应用程序:浏览器。您提出的攻击涉及两个独立的应用程序:银行应用程序和浏览器。

一般来说,单独的应用程序是分开的。Safari 不与 Firefox 共享数据,即使两者都安装在同一台 OS X 机器上。现在,其中一个或另一个可能存在错误,可能允许 JS 不受限制地访问 OS 文件系统,因此允许 Safari 中的网站访问 Firefox 的数据(反之亦然),但这与 CSRF 无关.

对于任何现代操作系统上的任何单独的应用程序,同样的事情也适用。

我相信,即使是在 JavaScript 中创建一个 cookie,然后使用 PhoneGap 或 Titanium 之类的东西也可能是相关的。

并非如此,就像 Safari 拥有 cookie 和 Firefox 拥有 cookie 一样,它们以某种方式捆绑在一起。

实际上可以对应用程序进行 CSRF

欢迎您提供证据证明您的主张,或提供您对 CSRF 的个人定义,其中包含 Safari 攻击 Firefox 等场景。

例如,Android 中的 Shared Preferences 被沙盒化以防止其他应用程序访问这些值。

正确的。这与 CSRF 关系不大。

在 Android 的情况下,您创建和存储 cookie 的方式似乎在攻击中确实很重要,并且它可能存在漏洞。

同样,欢迎您提供您的主张的证据,或提供您对 CSRF 的个人定义,其中包括 Safari 攻击 Firefox 等场景。

尽管对设备的物理访问会导致安全问题

尚未开发出允许 CSRF 使移动设备物理改变其位置并因此对物理访问产生影响的传送器技术。

于 2013-08-05T18:57:03.257 回答
4

Web 浏览器和应用程序不共享相同的 cookie 存储,因此这种方式的 CSRF 攻击应该是不可能的。应用程序也可以使用 Web 视图,但每个 Web 视图都有自己的 cookie 存储 [1],因此两个应用程序之间的 CSRF 攻击也是不可能的。

通过阅读此 [2],看起来确实可以将 cookie 存储在文件系统上,这些 cookie 可以通过另一个应用程序用作攻击媒介,但不能通过 Web 浏览器。

[1] http://developer.appcelerator.com/question/123991/cookie-sharing-between-defaultnative-browser-and-webviews-in-an-app

[2] http://developer.android.com/reference/android/webkit/CookieManager.html

于 2014-06-19T14:11:21.217 回答