我们的软件管理图书馆,博物馆,档案馆等。我们希望让用户(即编目员,而不是访客)添加一些嵌入式内容,如谷歌地图,YouTube视频等。我们希望解决方案尽可能灵活,因为每个嵌入式内容提供商都有自己的格式。 OTOH,我们宁愿不允许用户输入原始HTML,因为这会带来XSS安全风险,如果错误的HTML可能会搞砸我们周围的网页。
我今天开始研究谷歌地图,但找不到处理它的方法。我不想让用户只是将嵌入的HTML片段复制到一个项目中;我无法嵌入提供的链接网址,因为Google不允许这样做;我不能让用户指定坐标,因为我不想使用Google Maps JS API(这意味着提供我们必须维护的内置解决方案)。
问题不是专门针对谷歌地图,而是谷歌地图非常具有代表性。我很想听听有关灵活但安全的HTML嵌入技术的建议。
谢谢, 叶兰
答案 0 :(得分:2)
答案 1 :(得分:2)
Caja会为你效力吗?
Caja(发音为“KA-ha”)是“虚拟的 iframes“:它允许你放 不受信任的第三方HTML和 JavaScript内联在您的页面和 仍然是安全的。卡哈
- 更严格地控制代码可以执行的操作:
- 没有重定向到网页仿冒网页:不受信任的代码所拥有的窗口对象是由包含页面创建的虚假对象
- 没有恶意软件:所有对URL的请求都是代理的
- 无XSS:动态HTML清理
- 允许不受信任的代码比目前在iframe中的代码更安全。以下是一些可能性:
- 浮动框架(“信息窗口”)
- 框架不一定是矩形
- 帧可以在没有当前笨拙协议的情况下进行通信
- 读者可以广播有关当前文章的地理信息;地图小工具跳转到该位置,而新闻小工具获取本地故事,天气小工具可以提升天气
- 同样适用于财务信息或娱乐信息
- 可扩展语法荧光笔可以有插件,可以标记文本但不会将内容泄漏到另一个网站
- 可以是位通道(只能发送信息)或代码通道(可以发送功能)
- 托管页面可以控制谁与谁谈话