我有一个页面+JavaScript,可以将用户的SVG文件读入HTML 的数据中,然后使用JavaScript修改SVG的DOM。
编辑:用户使用类型为“file”的输入字段从其自己的文件系统中选择文件。
这在Firefox中运行良好,但Edge和Chrome都会引用单一来源策略(据我所知,Chrome会输出
阻止了源为“null”的框架访问跨源框架。
而Edge则拒绝读取对象数据)。
如果我足够理解单一来源策略和涉及的风险,则Edge和Chrome拒绝与加载的SVG一起玩耍是合法的。首先,我是否错了?
其次,我如何解决这个问题?有办法吗?让用户将SVG上传到服务器,然后加载它(以便与我的页面共享原点)是否有效-如果有效,这是否安全?
我正在寻找“正确”的方法来解决这个问题:对我的网站安全,对用户安全等等。
谢谢
编辑:用户使用类型为“file”的输入字段从其自己的文件系统中选择文件。
这在Firefox中运行良好,但Edge和Chrome都会引用单一来源策略(据我所知,Chrome会输出
阻止了源为“null”的框架访问跨源框架。
而Edge则拒绝读取对象数据)。
如果我足够理解单一来源策略和涉及的风险,则Edge和Chrome拒绝与加载的SVG一起玩耍是合法的。首先,我是否错了?
其次,我如何解决这个问题?有办法吗?让用户将SVG上传到服务器,然后加载它(以便与我的页面共享原点)是否有效-如果有效,这是否安全?
我正在寻找“正确”的方法来解决这个问题:对我的网站安全,对用户安全等等。
谢谢
类似的问题:
- 如何在Chrome中在运行时修改对象数据而不需要SOP? - 未回答
- 如何访问外部加载的SVG文件的ID? - 没有可用的答案
- 如何绕过Chrome对本地文件系统的Access-control-allow-origin限制? - 适用于在localhost上提供的页面
如果我应该对这些问题做出某些操作而不是再次提问,我很抱歉。我希望通过使用更现代的技术找到解决方案。
<svg>
并将文件放在其中吗? - Walle Cyril