基于iframe的CFS(Cross Frame Script)和Clickjacking(点击劫持)攻击
防止被 FRAME 加载你的网站页面
1. meta 标签:很多时候没有效果,无视
<meta http-equiv="Windows-Target" contect="_top">
2. js 判断顶层窗口跳转,可轻易破解,意义不大
function locationTop(){if (top.location != self.location) { top.location = self.location; return false; } return true; } locationTop();
破解:
// 顶层窗口中放入代码
var location = document.location;
// 或者 var location = "";
【像淘宝前端页面用的js:
if (top.location != self.location){ top.location = self.location; }
】
3. header 控制,绝大部分浏览器支持
网站Sitemap的一些规则
使用 X-Frame-Options 有三个可选的值:
DENY:浏览器拒绝当前页面加载任何Frame页面
SAMEORIGIN:frame页面的地址只能为同源域名下的页面
ALLOW-FROM:允许frame加载的页面地址
PHP代码:
header('X-Frame-Options:Deny');
Nginx配置:
add_header X-Frame-Options SAMEORIGIN
Apache配置:
Header always append X-Frame-Options SAMEORIGIN
具体参见:https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options?redirectlocale=en-US&redirectslug=The_X-FRAME-OPTIONS_response_header
注明: 如果是针对 安全扫描 appscan 或者CFCA认证 用的webinspect 这些工具的话扫出来的 Cross_Frame SCRIPT之类的high级别的安全问题,用第三条解决是可以过扫描的。如果不是过工具扫描,上述三中方案都是可行的。
在java中加入header deny方法如下(spring mvc,其他框架大同小异)
@RequestMapping("/login") public String login(HttpServletRequest request,HttpServletResponse response) { HttpSession session = request.getSession(); session.invalidate(); response.addHeader("x-frame-options","DENY"); return "login"; }
之所以扫描工具不认前端js跳出frame也是有道理的,毕竟破前端js难度不大
基于iframe的CFS(Cross Frame Script)和Clickjacking(点击劫持)攻击相关推荐
- iframe优缺点、X-Frame-Options(如何防止点击劫持、设置页面是否能作为iframe嵌套)、iframe长轮询和应用场景
目录 iframe优缺点 优点 缺点 为什么尽量少用iframe iframes阻塞页面加载,影响网页加载速度 唯一的连接池 解决 iframe应用场景 iframe长轮询 iframe跨域使用 防嵌 ...
- 基于 iframe 的全新微前端方案
作者:damyxu,腾讯 PCG 前端开发工程师 iframe是一个天然的微前端方案,但受限于跨域的严格限制而无法很好的应用,本文介绍一种基于 iframe 的全新微前端方案,继承iframe的优点, ...
- WEB消息提醒实现之二 实现方式-基于Iframe的流方式
#基于Iframe的流方式 ##原理 基于Iframe的流方式的原理主要是,在页面隐藏一个iframe,前台设定定时器修改iframe的src属性设为对一个长连接的请求,服务器返回对页面函数的调用,函 ...
- 【树莓派-网络监控(5)前端搭建】基于iframe标签,集成监控实时画面与遥控功能,完成网络监控的搭建与调试
前期内容提要: [树莓派-网络监控(1)分析准备]基于树莓派搭建可视化可远程遥控网络监控--工程分析及前期准备 [树莓派-网络监控(2)画面传输]基于mjpg-stream实现监控画面的传输 [树莓派 ...
- Cross Frame Scripting
有時白箱工具會掃出 Client Cross Frame Scripting Attack , 可以在 Header 中加入設定 X-FRAME-OPTIONS 但是這樣有些 白箱工具並不知道, 客戶 ...
- html引入echart地图点击,基于echarts实现3D地图的定时高亮和点击事件
技术选型 文章所选技术栈:vue.echarts.echarts-gl 安装Vue和echarts 1.安装echarts和echarts-alnpm i echarts --save npm i e ...
- 页面跨域与iframe通信(Blocked a frame with origin)
项目中有个需求是在前后端分离的情况下,前台页面将后台页面加载在预留的iframe中:但是遇到了iframe和主窗口双滚动条的情况,由此引申出来了问题: 只保留单个滚动条,那么就要让iframe的高度自 ...
- linux c++ toolchain 配置文件,一步一步建立基于ARM+Linux的cross toolchain
声明:本文在参考网上资料的基础上,以梁元恩的<如何为嵌入式开发建立交叉编译环境>为蓝本修改而成.对于自己在建立过程中遇到的问题进行了详细的说明,本文随自己学习的深入会进行相应的更新. 1引 ...
- iframe 、frameset 、frame的区别
iframe 一.iframe属性的用法 标签规定一个内联框架.内联框架可以在当前的HTML文档中插入框架,框架内可以链接另一个页面 它是 一个围堵标记,但围着的字句只有在浏览器不支援 iframe ...
- html框架iframe菜鸟,HTML DOM Frame/IFrame frameBorder 属性 | 菜鸟教程
Frame/IFrame frameBorder 属性 Frame/IFrame 对象 定义和用法 frameBorder 属性可设置或者返回 frame/iframe 元素的 frameborder ...
最新文章
- L1正则化为什么又叫做稀疏因子?
- Distributed locks with Redis--官方
- 《2018面向对象程序设计(java)课程学习进度条》
- Linux服务器rsync自动备份
- 周末舞会(信息学奥赛一本通-T1332)
- Win10之广告弹窗终结器:Process Explorer
- 阿里播放器使用Aliplayer
- 论文解读《使用支持向量机和PSSM谱预测蛋白质中的RNA结合位点》
- 2022年最新餐饮外卖行业市场研报合集(共45份)
- java怎么重新开始游戏_添加开始,停止,重置按钮到简单的Java游戏
- Scala中的面向对象
- html里获得农历时间,获取阴历(农历)和当前日期的js代码_javascript技巧
- 人工智能-语音交互-NLP自然语言(三) 语法-敲黑板
- Linux修改配置文件(自动)
- Kafka知识点概述
- 计算机控制矢量网络分析仪,完全独立的HF(短波)软件定义收发器和矢量网络分析仪设计...
- Ensight——Fluent重叠网格解决方案【翻译】
- 如何使用阿里云国际对象存储服务自动备份
- numpy的sum函数的axis和keepdim参数详解
- 【技术】基于数据库的权限设计