我有一个计算器小部件 ( 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/