移动端点击劫持怎么防?加了X-Frame-Options还是被嵌套了?
我在做公司官网的支付页面,听说点击劫持在移动端会变成“触摸劫持”,特别担心用户误触。我已经在响应头里加了 X-Frame-Options: DENY,但测试时发现别人还是能用 iframe 嵌入我的页面(虽然点不动),这算不算有风险?
而且 iOS Safari 好像对 X-Frame-Options 支持不太一致,有没有更靠谱的前端防护方案?比如用 JS 检测是否被嵌套?我试过下面这段代码,但不确定是否足够安全:
if (window.top !== window.self) {
window.top.location = window.self.location;
}
移动端就踏实用 CSP,比 X-Frame-Options 靠谱多了:
如果想前端检测,加个提示让用户自己点,别强行跳转(容易被拦截):
移动端触摸劫持本质上没法靠前端彻底解决,关键是后端 CSP 配好,别让人随便嵌入你的支付页面。