php v8js 等 javascript 解释器如何才能仅检查 js 代码的语法而不去执行?

发布于 2022-08-26 19:00:21 字数 394 浏览 18 评论 0

最近在公司用 PHP 做一个小软件, 其中有几处要求对用户提交的 JS 代码校验其语法. 我安装了 v8js 扩展, 将提交的代码包裹在函数里"var x = function() { 用户JS代码 }", 用这样的方式来校验客户代码而不用去执行它.

经实验效果不错, 但是问题是, 上面的方式可能被聪明的用户利用, 引起注入的危险. 如客户输入代码"}; 某些危险代码", 这可能会造成大麻烦.

请问有什么办法仅仅校验 JS 代码的语法, 而不去执行 JS 代码吗?

v8js 扩展文档: http://cn2.php.net/manual/zh/class.v8js.php

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

殤城〤 2022-09-02 19:00:21

跟踪代码发现,PHP的V8扩展中,代码内部是先进行JS校验,然后才开始执行的,所以只要修改代码,让他在校验完后就返回,即可实现仅检查语法而不执行代码了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文