繁体   English   中英

是否可以验证给定的文本是JavaScript代码?

[英]Is it possible to verify that a given text is JavaScript code?

  • 它只需几行(Java)代码即可实现。
  • 文本是从Web服务器接收的,但我不能信任HTTP标头。 它仅需通过内容进行验证。

当然! 只需使用JS解析器,例如Esprima (行业参考),然后执行以下操作:

function isIsReallyJSCodeOrWhat(code) {
  try {
    esprima.parse(code);
  } catch (err) {
    return false;
  }

  return true;
}

就这么简单。 JS解析器(esprima,橡子等)均基于Estree规范。 尝试看看esprima.parse产生的AST。 它易于阅读和修改。 这样,您可以检查代码是否执行了不需要的操作,未引用某些特定变量等。

如果您想快速测试一些代码并查看它产生了什么AST,请访问http://esprima.org/demo/parse.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM