gpt4 book ai didi

php - 验证 php 中的 javascript 对象

转载 作者:行者123 更新时间:2023-12-01 02:21:14 25 4
gpt4 key购买 nike

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

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

这是一个有效的 JavaScript 对象。现在,我想要一种在 php 中验证这一点的方法。我可以使用 json_encode/json_decode 但它无法完成 "function() ..." 的事情。您有什么建议吗?

最佳答案

要获得快速、肮脏且不安全的解决方案,您可以使用 安装在服务器上,并调用PHP的exec()验证代码。

从文档中,exec 定义为:

string exec ( string $command [, array &$output [, int &$return_var ]] )

对于 Node,我们可以使用 -e 标志来计算 JavaScript 字符串。使用命令行的示例:

> node -e 'invalid javascript'
SyntaxError: Unexpected identifier
> $?
-bash: 8: command not found # <-- return status!

将它与 PHP 的 exec 结合在一起,你可能会得到这样的结果:

<? php
$userJavaScript = getUserJavaScriptSomehow();
exec("node -e '" + $userJavaScript + "'", $output, $return_var);
if ($return_var !== 0) {
// something went wrong with parsing it.
}
?>

请注意,这是一个糟糕的解决方案。考虑到用户可以执行任何任意代码,您最好在客户端验证 JavaScript,而忘记在服务器端进行验证。您必须防止文件访问、无限循环等。

关于php - 验证 php 中的 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18573583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com