评估用户提供的JavaScript返回函数

评估用户提供的JavaScript返回函数,javascript,eval,Javascript,Eval,评估用户提供的字符串函数的最佳方法是什么 例如,用户可以在输入框中输入: “返回文档.标题”(存储在var fn) 我将在当前页面上对此进行评估: var result=eval(((function(){“+fn+”})()) 有没有更安全的方法?是否有库可以帮助清除恶意代码?上下文是什么?用户为什么要这样提供输入?用户可以从我的网站上的页面(page1.html,page2.html)中进行选择,并提供一个函数来返回一些数据(如document.title或window.someVariab

评估用户提供的字符串函数的最佳方法是什么

例如,用户可以在输入框中输入:

“返回文档.标题”
(存储在
var fn

我将在当前页面上对此进行评估:

var result=eval(((function(){“+fn+”})())


有没有更安全的方法?是否有库可以帮助清除恶意代码?

上下文是什么?用户为什么要这样提供输入?用户可以从我的网站上的页面(page1.html,page2.html)中进行选择,并提供一个函数来返回一些数据(如
document.title
window.someVariable
)。因此URL和返回函数都是用户输入的。您可以使用
函数
构造函数,而不是
eval
,这样它们就不能访问您的局部变量,但是如果您只是在用户自己的浏览器中运行代码,那么这并不是不安全的。如果代码总是只在页面上执行,从不发送到服务器并分发给其他用户,那么使用
eval
就不会有任何安全问题。您可能希望改用
函数
构造函数或全局
eval
,以避免泄漏潜在的私有闭包变量。编辑:斜视所说:谢谢!如果我在其他需要范围访问的网页上执行此操作,会怎么样?