gpt4 book ai didi

javascript - 如何使字符串安全地用作 math.js 表达式

转载 作者:行者123 更新时间:2023-12-05 06:44:36 26 4
gpt4 key购买 nike

我想让用户输入一个字符串,该字符串将作为表达式在 math.js 中进行计算。如何防止恶意使用此功能?

最佳答案

您指的是哪种恶意使用?

math.js 有它自己的表达式解析器,所以它可以安全地抵御 XSS 攻击。您不能像使用 JavaScripts eval 那样随意输入任意 JavaScript 代码,使用它可能很危险。

不过,您可以轻松地执行一个会耗尽内存和 CPU 的表达式,例如创建一个非常大的矩阵或其他东西 (math.eval('zeros(1e100, 1e100)')) .

如果你想防止这种情况发生,你将不得不在一个单独的网络 worker (客户端)或 child_process(node.js 服务器)中运行表达式解析器,这样你就可以在它花费太长时间时终止进程。您可以使用像 workerpool 这样的库为了这。例如,math.js 的 REST API ( http://api.mathjs.org ) 使用此库来终止运行超过 10 秒的表达式。

关于javascript - 如何使字符串安全地用作 math.js 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28498357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com