javascript - 限制用户可以输入的 JavaScript

标签 javascript angularjs node.js mean-stack

我希望允许用户将自己的数学公式输入到我可以通过 JavaScript 运行的字段中,但我只希望他们输入数学相关的代码,并让他们只能访问 Math 对象。

所以我只希望用户能够输入数学符号(+、-、*、% 等)并使用 Math 对象中的任何函数。

我最初考虑在客户端和服务器上使用正则表达式来验证它们是否只输入我允许的内容,并且由于它们在代码发送到服务器之前无法运行该代码,我认为也许可以,但我仍然不知道正则表达式本身是否适用于此。

我怎样才能安全地允许和信任这样的用户输入?

编辑:公式将始终在客户端上运行,但我会将它们作为字符串存储在数据库中,当他们想要运行它时我可以将其发送给他们。

最佳答案

因此,许多评论让我找到了 MathJs ,并且通过阅读该网站上的一些文档和评论,我发现允许用户输入并且还允许 Math 对象是安全的。

并将其与 workerpool 结合起来为了限制执行时间,我认为应该有我需要的一切。

感谢那些帮助我指明正确方向的人!

关于javascript - 限制用户可以输入的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34341911/

相关文章:

javascript parentnode.id 没有按我预期的方式工作

java - 数据插入 mongoDB 集合后触发 MongoDB 事件

javascript - Nodejs CPU 使用率高

node.js - 没有身份验证的 Firebase 初始化 - firebase.auth 不是函数

arrays - 如何使用 Node.js 驱动程序在 mongoDB 中多次插入数组?

javascript - 在 Jquery 中正确使用 .on 方法

javascript - 在angularjs中链接资源

javascript - 如何在OnClick函数中编写jquery脚本?

javascript - AngularJS:使用 $scope.$watch 和 Controller 作为语法

angularjs - 如何在 Angular JS 中设置 ng-valid-parse