自定义网站上的Android Iframe SameOrigin

时间:2016-01-12 15:54:02

标签: android apache cors httpd.conf same-origin-policy

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

不要以为你能做到这一点。由于Chromium没有将Allow-From视为功能[1],因此Android严重依赖Chromium的WebViews框架。

我猜你的要求是阻止基于浏览器的点击插件?

由于您无法使用Allow-From。您可能想要考虑类似于BlackHat talk [2] UI Redressing Attacks on Android Devices中概述的方法。我建议阅读整个pdf非常有趣的东西。

结帐Chapter 5 MITIGATION TECHNIQUES, Section 1 Browser-Based UI Redressing

<styleid=”antiClickjack”>
    body{display:none!important;}
</style>
<scripttype=”text/javascript”>
    if(self===top){
        varantiClickjack=document.
        getElementById(”antiClickjack”);
        antiClickjack.parentNode.removeChild(antiClickjack);
    }else{
        top.location=self.location;
    }
</script>

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

答案 1 :(得分:2)

WebView有loadDataWithBaseURL()方法。您可以阅读您的文件,并将其作为基本网址以您需要的任何来源传递。

{{1}}
  

使用baseUrl作为内容的基本URL,将给定数据加载到此WebView中。基本URL既用于解析相对URL,也用于应用JavaScript的相同原始策略。

相关问题