无需 javascript 和外部资源即可嵌入安全的 x3d

问题描述

TL;DR 我怎样才能使用 X3D,从而不能从文件中引用任何外部资源,也不能运行 javascript。

我正在尝试允许在 Medium.com 中嵌入 SVG 和 X3D(通过 embedly)。 SVG 可以是 embedded in a safe way 通过 <img 标签。这确保 SVG 永远不能使用 javascript,也不能使用外部资源。尽管有人可能会争论这种安全性是否必要(以及它是否过多地限制了 SVG),但我确实认为嵌入很好;你不希望嵌入加载跟踪像素,开始发出声音,或显示一个弹出窗口,人们应该再次登录到 Medium(注意:SVG 是从它自己的域加载到 iframe 中的,因此浏览器将保护它访问父作用域,仍然有很多 javascript 可以做的事情)......我喜欢安全开始的想法,并且,如果有必要并且我们对如何去做有很好的感觉,慢慢地允许更多用例。截至目前,SVG embedding in Medium is live

我绝对喜欢为 X3D 制作一个类似的嵌入。我目前正在写一篇关于 python-3d-modeller-hobby-project (MacPy3D) 的(缓慢)进展的博客,如果您有一种简单的方法来共享 3D 模型作为嵌入,那么事情会那么更容易解释。 X3D 似乎是做到这一点的理想方式——显然我希望其他人能够使用相同的工具。所以我的问题是,我是否可以通过以下方式展示 X3D:

  • 没有 javascript 可以在打开时运行
  • 任何 javascript 都不能因用户交互(例如 onclick)而运行
  • 无法加载任何外部资源(我知道这将暂时限制 X3D 的某些可能性,例如纹理,除非它们以 blob 文件中的形式提供)。

即使是关于如何预防上述问题之一的提示也会有所帮助。

快速概述系统应该如何工作:

  • 一个人将使用 X3D 文件 (example) 创建一个公共要点
  • 然后将此文件(通过 X3D <inline 标记)包含到一个空的 X3D 场景中——这是我目前发现的将外部 X3D 文件包含到页面中并使其呈现的唯一方法:
<html>
  <body>

            <script type="text/javascript"
                    src="https://www.x3dom.org/download/x3dom.js"> </script>
            <link rel='stylesheet' type='text/css'
                    href='https://www.x3dom.org/download/x3dom.css'></link>
            <x3d>
                <scene>
                    <inline url="https://gist.githubusercontent.com/reinhrst/99de8d5fdb5c7278b42f1fa63d1289b6/raw/fdfbfb650e694e52d0c400141b4dd15f9e13a874/ball.x3d"> </inline>
                </scene>
            </x3d>
            
  </body>
</html>
  • 将 html 文件(通过 oEmbed 和 Embedly 的魔力)放入 Medium(或其他支持 embedly 嵌入的系统)页面中

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)