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:xss 或 onFoo=xss。你真的需要一个处理 JavaScript 和 DOM 的工具,而不仅仅是一个 JavaScript 控制台。
IBM/Watchfire 最近发布了一篇关于他们创建的JavaScript analyzer 的论文。该文件提供了有关结果而不是实施的详细信息。商业工具可能不是您想要的方式,但这篇论文应该有助于更好地阐明做好这件事所面临的挑战。
【讨论】:
【参考方案4】:Facebook 的这个工具看起来很有前途。
https://github.com/facebook/jsgrep
【讨论】:
以上是关于Javascript 安全审计的最佳工具是啥?的主要内容,如果未能解决你的问题,请参考以下文章