TS公司#

渐进式键入安全地嵌入在JavaScript中。。。我们介绍了TS#,一个渐进式系统和JavaScript源代码到源代码的编译器。与以前的渐进式类型系统相比,TS#具有三种类型的完整运行时反射:(1)用于高阶函数、递归数据类型和基于字典的可扩展记录的简单类型;(2)any类型,用于动态类型安全的TS#表达式;以及(3)类型un,表示不受信任,嵌入TS的潜在恶意JavaScript上下文。在类型检查之后,编译器向程序插入各种检查,以确保TS的类型安全,尽管它与任意JavaScript上下文交互,这些上下文可以自由使用eval、堆栈遍历、原型定制和其他攻击性功能。我们的主要定理的证明采用了一种类型保持编译的形式,其中我们通过证明翻译后的程序在JS中是良好类型的,JS是以前提出的用于证明JavaScript程序功能正确性的独立类型语言,从而证明了TS到JavaScript转换的所有运行时不变量。我们描述了一个原型编译器、一个安全的运行时,以及TS的示例应用程序。我们的示例说明了开发人员当前用JavaScript编程的web安全模式(困难重重,结果仍然可疑)如何用TS#自然地编程,保留了惯用JavaScript的味道,同时通过输入提供了强大的安全保证。

这个软件也是同行评审按日记帐汤姆斯.

此软件的关键字

这里的任何内容都将在支持canvas元素的浏览器上被替换