自定义网站上的Android Iframe SameOrigin

use*_*738 5 apache android httpd.conf same-origin-policy cors

我们有一个Android应用程序,它将我们的网站iframe到他们的应用程序中.但是为了防止点击劫持,我们在代理配置中有以下指令.

标题附加 X-FRAME-OPTIONS "SAMEORIGIN"

这是一种非常常见的跨源资源共享策略.

不幸的Webview是,Android浏览器的起源与file:// 我们使用的域不同.这导致错误拒绝显示x-frame-options设置为sameorigin.

什么策略(在代理或客户端)我可以使用允许Android应用程序与我们的网站进行交互(没有完全删除sameorigin)?

JBi*_*gas 2

不要\xe2\x80\x99 认为你能做到这一点。由于 Chromium 不\xe2\x80\x99t 视为Allow-From功能[1],并且 Android 严重依赖 Chromium\xe2\x80\x99s 框架来处理WebViews.

\n\n

I\xe2\x80\x99m 猜测您的要求是阻止基于浏览器的点击劫持?

\n\n

因为您可以\xe2\x80\x99t 使用Allow-From. 您可能需要考虑一种类似于 BlackHat 演讲 [2] 中概述的方法UI Redressing Attacks on Android Devices。我\xe2\x80\x99d建议阅读整个pdf,非常有趣的东西。

\n\n

查看Chapter 5 MITIGATION TECHNIQUES, Section 1 Browser-Based UI Redressing

\n\n
<styleid=\xe2\x80\x9dantiClickjack\xe2\x80\x9d>\n    body{display:none!important;}\n</style>\n<scripttype=\xe2\x80\x9dtext/javascript\xe2\x80\x9d>\n    if(self===top){\n        varantiClickjack=document.\n        getElementById(\xe2\x80\x9dantiClickjack\xe2\x80\x9d);\n        antiClickjack.parentNode.removeChild(antiClickjack);\n    }else{\n        top.location=self.location;\n    }\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n\n

[1] https://code.google.com/p/chromium/issues/detail?id=129139#c20
\n[2] https://media.blackhat.com/ad-12/Niemietz/bh-ad -12-androidmarcus_niemietz-WP.pdf

\n