javascript - 使用 eval() 执行用户提供的代码有问题吗?

标签 javascript eval

我有一个计算器小部件 ( jsfiddle ),它使用 javascript 的 eval() 函数来评估用户的输入以用作计算器。它是 chrome 扩展程序中的嵌入式小部件,因此它没有任何数据库或任何其他可能受到伤害的附加内容,并且它不发送或接收任何数据。

显然,由于它使用了javascript 的eval 函数,因此这个框可以执行任何javascript。这有什么风险吗?我对 javascript 还很陌生,所以我不确定用户能够在这个小部件中评估他们自己的 javascript 会产生什么结果。他们所做的任何事情不会在刷新时恢复原状吗?

最佳答案

JavaScript 在客户端运行,因此您的服务器不会面临任何迫在眉睫的危险。

但如果用户可以以某种方式保存他们的输入并给其他用户一个链接,这可能会成为一个问题,因为这将允许执行任意 JavaScript(即:Cross-site scripting aka XSS)

关于javascript - 使用 eval() 执行用户提供的代码有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8101091/

相关文章:

javascript - 从表 td 中获取所有属性作为数组

eval - tensorflow : one hot encoding

python - eval() 与 input() 的行为

来自字符串的 PHP 变量值

javascript - JS - File Reader API 获取图像文件大小和尺寸

javascript - AngularJS 本地存储

python - 在 python 中将字符串正确传递给 eval()

perl - 为什么此eval出现语法错误?

javascript - 将给定的字符串拆分为数组

javascript - jQuery 动态添加的类未应用