双击劫持怎么防?iframe嵌套页面被恶意触发了怎么办?
我最近在做一个后台管理页面,发现被人用iframe嵌套后,通过透明层诱导用户双击触发了删除操作。明明加了X-Frame-Options头,但好像对双击劫持没用?
我在本地试了下面这种结构,点击外部div确实会触发按钮的click事件,这该怎么防御啊?
<div style="position: relative;">
<iframe src="/delete-action" style="opacity:0.1; z-index:1"></iframe>
<button style="position:absolute; top:0; left:0; z-index:2">点我领奖</button>
</div>
1. 最硬核的方法是用JS检测是否被嵌套:
性能上完全没问题,就是有些场景下会误伤正常iframe嵌套。
2. 更优雅的解法是用CSRF防护+Referer检查,双重保障:
3. 补充CSS防御,防止透明iframe覆盖:
说实话现在前端安全越来越卷了,我都快成安全工程师了...建议你把上面几招组合使用,特别是CSRF+Referer检查最管用。