需要:灵活而安全的用户HTML嵌入技术

时间:2009-01-25 13:32:45

标签: html

我们的软件管理图书馆,博物馆,档案馆等。我们希望让用户(即编目员,而不是访客)添加一些嵌入式内容,如谷歌地图,YouTube视频等。我们希望解决方案尽可能灵活,因为每个嵌入式内容提供商都有自己的格式。 OTOH,我们宁愿不允许用户输入原始HTML,因为这会带来XSS安全风险,如果错误的HTML可能会搞砸我们周围的网页。

我今天开始研究谷歌地图,但找不到处理它的方法。我不想让用户只是将嵌入的HTML片段复制到一个项目中;我无法嵌入提供的链接网址,因为Google不允许这样做;我不能让用户指定坐标,因为我不想使用Google Maps JS API(这意味着提供我们必须维护的内置解决方案)。

问题不是专门针对谷歌地图,而是谷歌地图非常具有代表性。我很想听听有关灵活但安全的HTML嵌入技术的建议。

谢谢, 叶兰

2 个答案:

答案 0 :(得分:2)

用于标记的 markdown或其他轻量级标记语言;用于嵌入允许代码段的自定义宏(请参阅在wordpress.com上完成以嵌入YouTube视频)

答案 1 :(得分:2)

Caja会为你效力吗?

  

Caja(发音为“KA-ha”)是“虚拟的   iframes“:它允许你放   不受信任的第三方HTML和   JavaScript内联在您的页面和   仍然是安全的。卡哈

     
      
  • 更严格地控​​制代码可以执行的操作:      
        
    • 没有重定向到网页仿冒网页:不受信任的代码所拥有的窗口对象是由包含页面创建的虚假对象
    •   
    • 没有恶意软件:所有对URL的请求都是代理的
    •   
    • 无XSS:动态HTML清理
    •   
  •   
  • 允许不受信任的代码比目前在iframe中的代码更安全。以下是一些可能性:      
        
    • 浮动框架(“信息窗口”)
    •   
    • 框架不一定是矩形
    •   
    • 帧可以在没有当前笨拙协议的情况下进行通信
    •   
    • 读者可以广播有关当前文章的地理信息;地图小工具跳转到该位置,而新闻小工具获取本地故事,天气小工具可以提升天气
    •   
    • 同样适用于财务信息或娱乐信息
    •   
    • 可扩展语法荧光笔可以有插件,可以标记文本但不会将内容泄漏到另一个网站
    •   
    • 可以是位通道(只能发送信息)或代码通道(可以发送功能)
    •   
    • 托管页面可以控制谁与谁谈话
    •   
  •