如何防止页面中的按钮被Strokejacking攻击?
我在开发一个在线支付页面时,发现按钮区域容易被恶意页面通过透明IFrame覆盖,导致用户误触转账操作。虽然设置了X-Frame-Options: DENY,但测试时发现攻击页面仍然能嵌套我的页面。
我尝试给按钮添加了style="pointer-events: none",但这样会导致正常用户也无法点击按钮。查看攻击页面代码发现他们用了allowtransparency属性,这和我之前了解的防御方法好像不太一样…
现在卡在如何同时满足:1. 允许合法框架嵌套(有些合作方需要) 2. 确保关键按钮区域无法被覆盖点击。有什么更可靠的防御方案吗?
frame-ancestors指令代替X-Frame-Options,CSP 的frame-ancestors更灵活,能指定允许嵌套的域名。关键按钮区域加个透明的div盖在上面,攻击者点不到按钮也搞不了事情。差不多就行,记得把
#protective-layer调整到合适的范围,别挡了正常功能。