美文网首页
superset(master)iframe跨域集成时遇到难题?

superset(master)iframe跨域集成时遇到难题?

作者: 安森老叔叔 | 来源:发表于2020-03-18 17:44 被阅读0次

    开干

    第一道墙

    首先,认识一下 X-Frame-Options。
    The X-Frame-Options HTTP 响应头是用来给浏览器 指示允许一个页面 可否在 <frame>, <iframe>, <embed> 或者 <object> 中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免 clickjacking 攻击。

    X-Frame-Options 有三个可能的值:

    X-Frame-Options: deny # 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
    X-Frame-Options: sameorigin # 表示该页面可以在相同域名页面的 frame 中展示。
    X-Frame-Options: allow-from https://www.baidu.com/ # 表示该页面可以在指定来源的 frame 中展示。
    

    在0.27中保持这个配置项为空即可,在master中远远不够。

    第二道墙

    这么修改后可能还会遇到在打开iframe时出现错误


    image.png

    这里的原因可能是——开启public角色的访问权限后,真正放到iframe中还需要解决跨域问题,而老版本中对http_headers配置项的修改不起作用,只能直接对explore_json去除csrf保护。
    添加配置文件中的👇

    WTF_CSRF_EXEMPT_LIST = [
        "superset.views.core.explore_json"
        ]
    

    再次访问有效,所以在master版本中,主要是依靠对特定接口取消保护来达到目的。


    image.png

    第三道墙

    如果使用nginx进行部署的话,还需要配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中:

    add_header X-Frame-Options sameorigin always;
    

    注意:

    1. 修改配置项http_headers为 {"X-Frame-Options": ""} 对授权无用,但对限制有用;
    2. 用户访问不在自己角色可能访问的数据,只是权限问题,可能报错:


      image.png

    相关文章

      网友评论

          本文标题:superset(master)iframe跨域集成时遇到难题?

          本文链接:https://www.haomeiwen.com/subject/gahcyhtx.html