我们有一个Android应用程序,可将我们的网站内嵌到其应用程序中。但是,为了防止点击千斤顶,我们在代理配置中使用了以下指令。

header 追加X-FRAME-OPTIONS "SAMEORIGIN"
这是非常常见的跨域资源共享策略。

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

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

最佳答案

别以为可以。由于Chromium并未将Allow-From视为功能[1],因此Android严重依赖于Chromium的WebViews框架。

我猜您的要求是阻止基于浏览器的点击举报?

由于您不能使用Allow-From。您可能需要考虑一种类似于本BlackHat讨论[2]概述的方法UI Redressing Attacks on Android Devices。我建议您阅读整个pdf真正有趣的内容。

checkout 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

关于自定义网站上的Android Iframe SameOrigin,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34748152/

10-09 06:52
查看更多