在php中验证javascript对象

在php中验证javascript对象,php,javascript,jquery,node,Php,Javascript,Jquery,Node,在我的UI中,用户可以构建一些javascript对象,如: var box = { "width": "100px", "height": "200px", "click": function () { alert("You clicked the box"); } }; 这是一个有效的javascript对象。现在,我想要一种在php中验证这一点的方法。我可以使用json\u encode/json\u decode,但它无法完成“funct

在我的UI中,用户可以构建一些javascript对象,如:

var box = {
    "width": "100px",
    "height": "200px",
    "click": function () {
        alert("You clicked the box");
    }
};

这是一个有效的javascript对象。现在,我想要一种在php中验证这一点的方法。我可以使用
json\u encode
/
json\u decode
,但它无法完成
“function()…”
的工作。您有什么建议吗?

我想您应该尝试验证根据用户输入构建的对象。因为用PHP编写一个完整的JavaScript解析器会很困难,我建议采用以下方法:输入所有数据后,通过Ajax从PHP脚本请求JavaScript对象。然后,您可以在客户端进行评估,以查看是否存在任何错误


一个更一般的建议:不要把可执行代码和数据混在一起!只需在客户端和服务器之间交换易于验证的JSON对象,并编写一些处理JSON对象的静态JavaScript代码即可。这也将更好地保护您免受来自用户输入的代码注入。

PHP只能验证代码的JSON部分。如果需要服务器端技术,请使用nodejs。简单地通过node code.js运行代码,看看是否有任何错误。因此,我想您应该获取代码,将其保存到一个文件中,然后对其运行node。

对于快速、肮脏且不安全的解决方案,您可以在服务器上安装,然后调用PHP来验证代码

根据文档,exec定义为:

string exec(string$command[,array&$output[,int&$return\u var]]
使用node,我们可以使用
-e
标志来计算JavaScript字符串。使用命令行的示例:

>节点-e“无效javascript”
SyntaxError:意外的标识符
> $?

-bash:8:command not found#您希望实现哪种验证?您可以通过JavaScript评估来了解整个过程,这可能是对语法正确性的第一次评估。@mvw语法验证我猜,我想确保在Inde JavaScript中使用该对象时不会导致错误。是的,我可以使用eval并捕获异常,但我需要一个php验证方法,验证必须在php内部进行。也许可以看看php函数
json\u decode
用于处理表示中的数据,而javascript对象
则不是。要么排除属性
单击
,要么解析我从中获得的javascript代码这将是非常困难的,因为它必须是一个成熟的javascript验证器。谢谢,我会接受这一点作为我问题的最佳答案。其他的方法很好,但是在服务器端执行用户输入的数据不是一个好主意。再次感谢