【问题标题】:Will there be a dynamic code injection for dart? [closed]dart 会有动态代码注入吗? [关闭]
【发布时间】:2014-10-19 23:08:31
【问题描述】:

我目前正在准备一个关于Polymer.dart 的演讲,并想对飞镖做一个简短的介绍。我想准备一个问题:

dart 是否会通过<script> 进行动态代码注入?

这个article目前不支持这个是有充分理由的。

但是,current 将声明相对化了一点,我想知道将来是否有计划支持动态代码注入?

【问题讨论】:

  • 这个问题似乎离题了,因为它是关于预测未来的。
  • 这个问题是由撰写参考文章的飞镖团队来回答的。我的问题是:现在是否有计划在未来实施。 目前这个词暗示这可能是可能的。由于文章是在一年前更新的,当时dart还是beta(或者刚变成1.0),感觉这个问题是有道理的。
  • 之所以在这里问这个问题,是因为dart团队建议在这里提出关于dart的问题,以便大家阅读。这是在讨论飞镖时出现的典型问题之一。我不是在征求意见,而是在征求事实。称它们为洞察力,但我只对来自 Google Dart 团队的事实感兴趣。

标签: dart


【解决方案1】:

例如,如果 Dart 中引入了“eval”命令,那么答案是肯定的,Dart 容易受到注入攻击。 Javascript 在这方面就像 SQL:它与所有其他动态解释的编程语言(包括所有 shell 脚本、PHP...)具有相同的漏洞,我称之为“数据即代码”。这种语言有一个具体的句法,用于人类消费,它们的处理需要第一步,称为解析:字符序列被分解成一个描述表达式含义的内部结构,以计算机可以使用的方式将数据与指令区分开来。这也是导致现代 CPU 上引入 NX(No-eXecute)位的相同问题。像“eval”这样的函数打开了恶意代码的大门,可以不受约束地执行。绝不应允许在运行时解析代码以使用安全语言。 这就是 Dart 不推荐使用注入的原因,如下所述: https://www.dartlang.org/articles/embedding-in-html/#no-script-injection-of-dart-code

"没有脚本注入 Dart 代码我们目前不支持或 建议动态注入一个加载 Dart 代码的标签。 最近的浏览器安全趋势,如内容安全策略,积极 防止这种做法。”

但 google 应该做的不止于此,并与“eval”命令一起完全禁止它。

【讨论】:

    【解决方案2】:

    这样的问题最好直接问你的水晶球;-)

    Google 非常不愿意就此类事情发表声明。 过去有讨论,他们考虑过,最终可能会重新考虑。

    目前唯一的选择是启动新的隔离,即使这仍在进行中,并且仍然存在使此功能难以使用的限制(例如,无法访问客户端隔离的浏览器 API)。

    【讨论】:

      【解决方案3】:

      我不确定这个问题是否真的可以回答;因为它可能还没有决定。

      基于该页面上的内容;我认为这不太可能(尤其是其他规则,比如一个脚本标签和一个主入口点)。

      但就像所有事情一样,事情可能会发生变化!

      【讨论】:

      • 我知道这个问题无法从社区获得答案。不过,这篇文章的作者也很活跃在 stackoverflow 上,我希望他们目前至少可以对此发表评论。
      • 从 1.7 发行说明:dart2js 延迟加载机制现在可以在同一页面上存在多个 Dart 应用程序的情况下工作。看起来您实际上可以拥有多个应用程序/标签?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多