黑帽联盟

 找回密码
 会员注册
查看: 2011|回复: 0
打印 上一主题 下一主题

[html] web安全策略之iframe sandbox

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    sandbox是html5的新属性,主要是提高iframe安全系数。iFrames因安全问题而臭名昭著,这主要是因为iFrames常常被用于嵌入第三方内容,而后者则可能会执行某些恶意操作。这样可以有效防止iframe对父页面进行攻击(禁用插件,禁止其他浏览上下文的导航,禁止弹出窗口和模式对话框)。sandbox通过限制被嵌入内容所允许的操作而提升iFrames的安全性。这种方式将sandbox内容与父页面进行了分离,因此限制了被嵌入内容的权限。它可以防止如下操作:

    ◆访问父页面的DOM(从技术角度来说,这是因为相对于父页面iframe已经成为不同的源了)
    ◆执行脚本
    ◆通过脚本嵌入自己的表单或是操纵表单
    ◆对cookie、本地存储或本地SQL数据库的读写

    定义和用法
    如果被规定为空字符串(sandbox=""),sandbox 属性将会启用一系列对行内框架中内容的额外限制。
    sandbox 属性的值既可以是一个空字符串(应用所有的限制),也可以是空格分隔的预定义值列表(将移除特定的限制)。

    语法
    <iframe sandbox="value">

    举例子:
    <iframe src=‘www.baidu.com' sandbox=''></iframe>

    sandbox属性
    描述
    “”
    应用以下所有的限制。
    allow-same-origin
    允许 iframe 内容被视为与包含文档有相同的来源。
    allow-top-navigation
    允许 iframe 内容从包含文档导航(加载)内容。
    allow-forms
    允许表单提交。
    allow-scripts
    允许脚本执行。

    案例:
    例子 index.html
    1. <!DOCTYPE html>
    2. <html>
    3.     <title>index</title>
    4.     <body>
    5.         <h1>index</h1>
    6.         <iframe src="child.html" sandbox=""></iframe>
    7.     </body>
    8. </html>
    复制代码
    例子 child.html
    1. <!DOCTYPE html>
    2. <html>
    3.     <title>child</title>
    4.     <script type="text/javascript">
    5.         alert('child');
    6.     </script>
    7.     <body>
    8.         <h1>child</h1>
    9.         <form id="form" action="http://www.baidu.com">
    10.             <input type="submit" value="sub">
    11.         </form>
    12.     </body>
    13. </html>
    复制代码
    例子解释
    这样child.html页面的alert 和 form提交都无法执行。防止child页面对index页面的操作。child域从而独立。index可以继续控制child,而child无法控制index。

    结论
    sandbox是专门为iframe而定制的一个属性,现在对浏览器兼容来说不能完美兼容。但只是一个简单的代码在写的时候建议加入’sandbox’。还是起到一定的安全作用的。还有如果别人用js移除sandbox,必须下次页面重现刷新才会执行。而刚好页面渲染循序是,html>css>js文件。因此如果是用js移除sandbox属性应该是无效的。就一行代码别懒了

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部