Javascript 安全审计的最佳工具是啥?

Posted

技术标签:

【中文标题】Javascript 安全审计的最佳工具是啥?【英文标题】:What's the best tool for Javascript security auditing?Javascript 安全审计的最佳工具是什么? 【发布时间】:2011-06-04 03:50:24 【问题描述】:

至少可以扫描一批 .js 文件以查找 eval 语句和其他有问题的代码。也许只是一个正则表达式模式就可以做到,但我想找到一个更复杂(并定期维护)的工具。

【问题讨论】:

你为什么不试试security.stackexchange.com? 现在有安全 SE 了吗?天哪,我们应该如何跟上这一步伐。 【参考方案1】:

老话题但新工具: ScanJS,由 mozilla 开发,用于检查 Firefox OS 的安全性。 https://github.com/mozilla/scanjs

【讨论】:

仅供参考,ScanJS 自 2015 年 7 月起已弃用。 是的,github上提到过,新项目位于https://github.com/mozfreddyb/eslint-config-scanjs【参考方案2】:

你试过Douglas Crockford's JSLint吗?尽管它不会扫描您的代码是否存在安全问题,但是,它会在“eval”语句中提醒您。 OTOH,Predrag Tomasevic 写了一个javascript Verifier based on JSLint,它可以与 Visual Studio 集成(阅读更多关于这个here)。

【讨论】:

【参考方案3】:

我不知道有任何开源工具可以对 JavaScript 进行静态分析。

对于 eval() 的搜索可能对除了非常简单、非常明显的错误没有任何帮助。分析脚本是否已被缩小或混淆将更加困难,因为您将很难确定参数是否被安全使用。

JavaScript 中存在大量依赖于与 DOM 交互的安全问题。 Grepping for eval() 可能有效,但它会错过其他执行点,例如可能受到攻击的 href 或事件处理程序,例如href=javascript:xssonFoo=xss。你真的需要一个处理 JavaScript 和 DOM 的工具,而不仅仅是一个 JavaScript 控制台。

IBM/Watchfire 最近发布了一篇关于他们创建的JavaScript analyzer 的论文。该文件提供了有关结果而不是实施的详细信息。商业工具可能不是您想要的方式,但这篇论文应该有助于更好地阐明做好这件事所面临的挑战。

【讨论】:

【参考方案4】:

Facebook 的这个工具看起来很有前途。

https://github.com/facebook/jsgrep

【讨论】:

以上是关于Javascript 安全审计的最佳工具是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在不使用表单的情况下,从 javascript 应用程序从节点服务器获取 JWT 令牌的最佳安全方法是啥?

寻找执行网站安全审计的工具

Linux系统安全审计工具Lynis

在 SonarQube 中使用 npm 审计报告

代码安全审计工具

Web应用安全审计工具WATOBO