Javascript 允许用户提交的JS在不压缩安全性的情况下执行

Javascript 允许用户提交的JS在不压缩安全性的情况下执行,javascript,php,security,Javascript,Php,Security,抱歉,我知道这很模糊 我正在开发一个网站,用户可以提交自己的应用程序在网站上执行。这些应用程序将以javascript执行,并可供站点上的任何人在其浏览器中运行。问题是我需要限制用户能够在应用程序中访问javascript的哪些方面。我希望他们能做的就是: 创建和操作自己的变量和函数 调用自己编写的预定义JSAPI 有人有什么想法吗?我现在正在考虑两个选择。要么他们用JS编写,我确保里面没有讨厌的代码,要么他们用python之类的语言编写,我反复使用,将其转化为安全的javascript 我

抱歉,我知道这很模糊

我正在开发一个网站,用户可以提交自己的应用程序在网站上执行。这些应用程序将以javascript执行,并可供站点上的任何人在其浏览器中运行。问题是我需要限制用户能够在应用程序中访问javascript的哪些方面。我希望他们能做的就是:

  • 创建和操作自己的变量和函数
  • 调用自己编写的预定义JSAPI
有人有什么想法吗?我现在正在考虑两个选择。要么他们用JS编写,我确保里面没有讨厌的代码,要么他们用python之类的语言编写,我反复使用,将其转化为安全的javascript

我的所有服务器端的东西都是用PHP编写的,所以我希望将用户提交的代码作为PHP字符串进行操作


再次,我道歉,我没有要求人们为我编写代码,我知道这个网站是为了解决特定的代码错误,但我不知道如何解决这个问题。

我看到的唯一解决方案是创建一个沙盒环境。试试看(我从来没用过)。如果这不起作用,你应该考虑定义元语言,以便用户在这个元语言中提交脚本,并将它们“编译”成JavaScript。任何其他选项都是危险的,因为您正在将脚本上载到服务器。

最后,我使用的方法是,因为这允许我在页面中实现用JavaScript编写的代码并将其限制。它有几种配置,但对我来说效果最好的方法是完全拒绝它的DOM访问,允许它访问我自己的域来抓取图像,但不允许其他网络访问(这是通过URI策略实现的)


非常感谢Blender的推荐,非常有帮助

这可能会让你感兴趣:这真的非常有帮助。非常感谢。虽然这似乎更侧重于附带CSS/JS的通用HTML,但似乎我可以将其用于我的独立JS。元语言是我一直在考虑的一个选项,因为这也将允许我为前端用户提供更简洁、易于理解的代码。问题是,我在尝试用php编写“编译器”时,有点被这个想法卡住了,迷失了方向。有人对如何准确地处理这个元语言有什么建议吗?一个链接或其他东西会很有帮助。Php这不是实现元语言的最简单的编程语言。在python中,有许多示例可以帮助您。看看shlex,例如:[shlex]()。使用lexer,您可以轻松地处理字符串和分隔符,以便将定义的语法转换为javascript。看一看atI最终与caja合作,发现这是迄今为止对我来说最简单的选择。Thxs用于反馈。我也会去看Caja(它看起来是一个很好的成熟项目)。供将来参考:在做了很多实验之后,我真的很难让它工作。很多第三方脚本根本没有运行,我真的很难找出原因。