gpt4 book ai didi

javascript - 如何避免在用户定义函数中使用 JavaScript eval()

转载 作者:行者123 更新时间:2023-12-02 16:12:21 25 4
gpt4 key购买 nike

我正在尝试制作一个通用的桌面 RPG 助手网络应用程序。它必须是通用的,因为威世智非常保护他们的版权。因此,为了避免停止,系统必须能够加载任意规则。也就是说,我和我的好友(以及大多数其他用户)将使用它进行 D&D。

在 D&D 中,修饰符基于 Angular 色的统计数据。要获得修正值,您需要获取统计数据,减去 10,除以 2,然后向下舍入。

function getModifier(statValue) {
return Math.floor((statValue - 10) / 2);
}

我的应用程序将能够从 .json 文件加载游戏规则。我希望能够使这个修饰符函数可由用户定义。最简单的方法是仅使用 eval() 他们在 .json 文件中提供的任何内容,但由于安全问题,显然这是一个糟糕的主意。

不幸的是,我想不出一种简单的方法来安全地解决这个问题。显然我可以编写自己的解析器,但这比我想要的/目前能够做到的要复杂。

想法?

最佳答案

我快速进行了谷歌搜索,发现了两个选项 - http://mathjs.orghttp://jsep.from.so

顺便说一句。编写自己的解析器并不那么困难。您也许可以用不到 100 行代码编写一个足以满足您的目的的代码

关于javascript - 如何避免在用户定义函数中使用 JavaScript eval(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30036442/

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