今天尝试在iframe中嵌入外部网站, 碰到了一些小问题.

如何让自己的网站不被其他网站的iframe引用?

我测试的时候发现我把iframesrc指定到github不起作用. 原来是它把X-Frame-Options设置为了DENY, 这样就禁用了别的网站的iframe引用, 避免点击劫持(clickjacking).

X-Frame-Options有三个可能值: DENYSAMEORIGINALLOW-FROM uri.

详见: The X-Frame-Options response header

如何禁用自己iframe中链接的外部网站的JS?

我发现我把一个外部网站引入到我的iframe中时, 该网站的恶心JS会让我的网页跳转到它的网站! 蛋疼. 但是我在测试的是否发现, Codepen就能够避免这个跳转, Console中有信息:

Unsafe JavaScript attempt to initiate navigation for frame with URL 'http://codepen.io/lzl124631x/pen/jWeOPL' from frame with URL 'http://keepvid.com/?url=https://www.youtube.com/watch?v=wY2vhSb3cVo'. The frame attempting navigation of the top-level window is sandboxed, but the 'allow-top-navigation' flag is not set.
(anonymous function) @ ?url=https://www.youtube.com/watch?v=wY2vhSb3cVo:108
?url=https://www.youtube.com/watch?v=wY2vhSb3cVo:579 GET http://www.5kplayer.com/kvads/keepvid-728-90.png net::ERR_BLOCKED_BY_CLIENT

原来是iframe的属性sandbox的作用.

sandbox属性可以设置的值包括:
allow-forms
allow-modals
allow-orientation-lock
allow-pointer-lock
allow-popups
allow-popups-to-escape-sandbox
allow-same-origin
allow-scripts
allow-top-navigation

如果给iframe加上sandbox="allow-forms allow-scripts", 就会打开allow-formsallow-scripts两个选项, 其他的全部禁用.

如果想禁用让外部网站的JS, 不要加allow-scripts就好了.

如果想禁用外部网站的JS跳转, 不要加allow-top-navigation就可以了.

详见: <iframe> Sandbox

iframe的安全问题相关推荐

  1. iframe嵌套其它网站页面详解

    iframe基本内涵 通常我们使用iframe直接直接在页面嵌套iframe标签指定src就可以了. <iframe src="demo_iframe_sandbox.htm" ...

  2. Web安全:常见的安全问题及防范措施

    前言 随着互联网的高速发展,信息安全问题已经成为行业最为关注的焦点之一.总的来说安全是很复杂的一个领域,在移动互联网时代,前端人员除了传统的 XSS.CSRF 等安全问题之外,还时常遭遇网络劫持.非法 ...

  3. Web前端之iframe详解

    最近在做项目,在实现前端页面的时候遇到很多问题,开发进度很慢,实现一个功能基本上都是在走弯路,也不知道如何实现才是最好的选择,所以就一直在爬坑,在实现一个页面数据编辑的功能的时候就需要使用一个ifra ...

  4. iframe嵌套详解

    目录 iframe基本内涵 获取iframe里的内容 在iframe中获取父级内容 iframe的轮询 iframe长轮询 自适应iframe之蜜汁广告 自适应iframe iframe安全性探索 防 ...

  5. iframe和iframe实现页面内嵌套一个页面(jsp)

    相信刚学习javaweb的同学都十分好奇页面上点击一个按钮下面就显示一个页面,点击不同的导航栏按钮,下方就会显示不同内容,这就用到了iframe标签的src属性.下面就给大家介绍一下iframe的使用 ...

  6. angular7 + ng-zorro-antd 开发问题小记

    压缩打包 ng build --prod --build-optimizer // 编译后进一步压缩文件的大小 打包遇见的问题: 超过budgets WARNING in budgets, maxim ...

  7. HTML 学习笔记 0

    HTML入门 语义化标签 HTML解释器会将连续出现的空白字符减少为一个单独的空格符 在HTML中,字符 <, >,",' 和 & 是特殊字符,可以通过 等价字符引用 代 ...

  8. iframe安全问题

    1.iframe 有些时候我们的前端页面需要用到第三方提供的页面组件,通常会以iframe的方式引入.典型的例子是使用iframe在页面上添加第三方提供的广告.天气预报.社交分享插件等等. ifram ...

  9. iframe 父子页面相互访问,iframe属性、安全问题

    iframe是html标签,具有一般标签的属性: width iframe的高度 height iframe的宽度 src iframe里面加载的页面url name 可以通过window.frame ...

最新文章

  1. Jmeter脚本录制(APP)
  2. ANSI, UNICODE与UTF8相互转换模板类
  3. C++11之thread线程
  4. 多样性文本生成任务的研究进展
  5. HDU - 4612 Warm up(边双缩点+树的直径)
  6. chrome浏览器中解决embed标签 loop=true 背景音乐无法循环的问题。
  7. PHP双码率视频云转码服务系统源码 m3u8切片秒切
  8. python写exploit采集器
  9. OC基础--block
  10. 有关判读flex 模板载入是否结束的一些问题。
  11. JAVA常用框架及漏洞
  12. html 选择题代码,JS实现简单的选择题测评系统代码思路详解(demo)
  13. 电脑上的歌曲怎么传到苹果手机上面,怎么把电脑上的歌导入苹果手机
  14. 电脑键盘部分按键失灵_Win7系统键盘部分按键失灵了怎么办?
  15. java queue GATK_gatk4使用总结
  16. iOS 常用第三方开源框架介绍
  17. 退出卸载360、QAX 天擎,无需密码
  18. Postek博思得打印机
  19. 网络上经常使用的简单投票代码
  20. 水晶报表Crystal Reports XI服务器版

热门文章

  1. Premiere新冠病毒视频介绍病毒知识讲解视频PR模板
  2. linux系统中使用chattr命令的,linux chattr命令
  3. jna 构造函数_【JNA探索之路系列】之二:JNA API
  4. 十大券商:稳经济一揽子政策将起效
  5. 64位微处理器_MCU芯片市场研究:主导8位MCU,但32位MCU受欧美和日本高度垄断
  6. HTML5 localStorage设置失效时间,使用store.js
  7. jQuery 来了--动画,停止动画,回调函数Callback,链
  8. 牛客小白月赛27题解(部分)
  9. 基于抓劈腿一事浅谈潜行追踪分析与实用技巧
  10. “甜心教主”回归 王心凌新专辑全是书名?