我们有一个Android应用程序,可将我们的网站内嵌到其应用程序中。但是,为了防止点击千斤顶,我们在代理配置中使用了以下指令。
header 追加X-FRAME-OPTIONS "SAMEORIGIN"
这是非常常见的跨域资源共享策略。
不幸的是,Android浏览器中的Webview
的起源是file://
,它与我们使用的域不同。这导致错误,拒绝显示设置为x-frame-options
的sameorigin
。
我可以采用什么策略(在代理或客户端)允许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/