javascript - 堆栈跟踪中的评估是邪恶的吗?
问题描述
在一个 Vue 应用程序上,我最近发现堆栈跟踪包含很多“eval”。许多 Vue 例程都是这种情况,而且当我调用一个函数时,在 Vue 中的某个地方通过函数中的参数传递。
所以,如果我添加这个:
const A = (fB) => fB();
const B = () => true;
(() => {
A(B);
console.warn("Fb");
})();
铬日志:
Formae.js?41dd:15 Fb
eval @ Formae.js?41dd:15
抱歉,我会 - 我很困惑,我也怀疑我的英语语法。
我的第一个问题是:这是邪恶的……我的意思是,危险吗?这是安全漏洞吗?这是 Vue 的问题吗?或者这只是一个 Node.js 和后端问题,对前端没有安全影响?
另一方面,虽然我很早就知道 eval 被他邪恶的安全弱点光环所包围,但我主要关心的是性能成本:
我使用 Vue 来构建一个 UI,从 objetcs 请求方法,这与反应性没有直接关系 - 我只需要在设置时显示它的输出:因此,我已经将它冻结在 Vue.$set 方法中。
我应该将我的方法与 Vue 完全分开,并将它们作为 fetch API 调用吗?换句话说,我应该把它们放在后端吗?并通过在我的 package.json 添加命令来启动它(但我不知道该怎么做)?(脚本:{服务:...}}
谢谢
解决方案
推荐阅读
- php - 如何为开发环境配置 vhosts/apache 子域?
- vim - 配置 nvim 和 oni 以在 windows 中的 wsl 上使用 bash
- java - 无法创建任务“:调试”。不支持不必要地替换不存在的任务
- python - 动态读取 CSV 文件
- azure-devops - 如何在 Azure DevOps 上创建/编辑 YAML 发布管道
- algorithm - 二维网格上从 (0,0) 到 (N,N) 的最小成本路径
- sql - 将不同表的行组合成可以有值的一行
- python - 为什么我的函数没有提示我输入输入?
- php - 如果表单中的值为空白,如何显示警报消息
- java - 将外键连接到中间实体