用Java对Javascript进行静态分析
Static analysis of Javascript with Java
我需要使用Java对Javascript文件进行静态分析。在这里,我需要检查Javascript文件是否有任何对document.write()的函数调用或对innerHTML等属性的引用。我可以使用javax.script.*包来实现这一点吗?或者我需要使用哪个Java api进行解析?你也能提供同样的例子吗?
您不能以您想要的方式静态分析Javascript,因为Javascript不是一种静态类型的语言。
你可以检查document.write()
,但如果我的代码是这样的呢:
var whatever = document; whatever.write()
还是要拒绝任何名为write()
的函数,即使它没有写入文档?
此外,Javascript有一个eval
函数,所以您可以随时执行:
var m = "ment";
eval("docu" + m + ".wri" + "te('hahahaha')");`.
你打算怎么检查?
同样,可以通过多种方式访问属性。
想象一下这段代码:
var x = document.children[0];
x.innerHTML = ...;
x["inner" + "HTML"] = ...;
var y = "inner";
x[y + "HTML"] = ...;
使用静态分析,你将无法检测到所有这些变体,以及你可以制造的数百种变体。
相关文章:
- 分析Javascript函数中的多个对象
- 使用 MiniProfiler 分析 JavaScript 代码
- 分析javascript中的JSON数据
- 什么是上下文中静态类型javascript的示例,以更好地进行单元测试
- 如何在PhantomJS中分析javascript
- Coffeescript 静态分析/静态类型检查 - 障碍
- 使用静态 HTML 或静态 DOM Javascript 设计页面
- 分析javascript.php中的文本文件
- objectId上的PFQuery.find在分析JavaScript SDK(云代码)中未返回唯一行
- 正在分析Javascript中的BBCode
- 如何分析JavaScript函数的执行顺序
- CMIS11.1浏览器绑定:如何仅使用静态HTML+JavaScript显示文件夹的内容
- 正在分析Javascript中的时间字符串
- 正在分析JavaScript中格式错误的JSON
- 分析Javascript XML子类别
- 谷歌分析javascript应用程序
- 无法使用SonarQube分析Javascript文件
- 关于Javascript静态分析工具的问题,如Google Closure、JSHint、JSLint
- JSure Javascript静态分析工具
- 用Java对Javascript进行静态分析