Jsprime——一款JavaScript静态安全分析工具

如今,越来越多开发人开始将JavaScript作为其首选语言方案。理由很简单,JavaScript如今正越来越多地被视为应用程序的主流开发语言——无论是在Web层面抑或是移动端,客户端不是服务器端。JavaScript拥有出色的灵活性,而宽松的语句设计能够让开发人员以令人惊奇的速度创建出富应用。最近一段时间,JavaScript解释器的性能也得到了突飞猛进,从而几乎彻底消除了企业对其可扩展性与吞吐能力所抱持的疑问。总而言之,JavaScript如今已经成为一款极为重要且强大的语言,我们将其引入日常工作,从客户端Web应用编码到通过Node.js实现的服务器端开发,再到如今其已经能够支持的Windows 8等主流移动平台应用编写——甚至包括尚未正式推出的Firefox OS应用。

但问题在于,很多开发人员仍在采取某些安全性低下的实践举措,这将导致大量客户端攻击行为的出现——而其中最臭名昭著的当数DOM XSS攻击。我们曾努力了解这类问题的根源,并发现这是因为缺少充足的实践性工具帮助开发人员应对真实世界中的挑战。因此,为了率先找出问题的解决办法,我们在这里向大家推荐JSPrime:一款JavaScript静态分析工具。它极具轻量化特性,且只需点击操作即可轻松使用!这款静态分析工具基于来自Aria Hidayat的高人气Esprima ECMAScript解释器。

我要首先解释这款工具的几大突出特性:

  • JS库源与输出识别
  • 多数动态或者静态分析器皆在开发过程中支持原生/纯JavaScript代码,这种作法对于大多数开发人员都是种难以解决的问题,因为他们会大量使用jQuery以及YUI等JavaScript框架/库。由于这些扫描工具能够支持纯JavaScript代码,所以其往往无法理解开发工作的背景信息,这是因为使用这类库时会造成大量假阳性与假阴性误报。为了解决这一难题,我们已经为jQuery及YUI识别出了各类高危用户输入源与代码执行输出功能。从最初版本开始,我们就在认真考虑如何确保用户能够轻松将其扩展至其它框架。
  • 变量与函数追踪(这项功能作为我们代码流分析算法的组成部分)。
  • 变量与函数内容识别分析(这项功能作为我们代码流分析算法的组成部分)。
  • 已知过滤器功能识别。
  • 遵循面向对象程序与原型设计合规标准。
  • 最大程度降低误报机率。
  • 支持JavaScript代码精简。
  • 极高运行速度。
  • 只需点击即可操作。

未来将陆续推出的新特性:

  • 通过混合型分析自动实现代码反混淆与解压缩(由Ra.2实现,http://code.google.com/p/ra2-dom-xss-scanner)。
  • ECMAScript家族支持能力(包括ActionScript 3、Node.js以及WinJS)。

使用方式

Web客户端

在浏览器中打开"index.html"。

服务器端(Node.JS)

1. 在终端中输入"node server.js"。

在浏览器内访问127.0.0.1:8888。

原文发布于微信公众号 - 安恒信息(DBAPP2013)

原文发表时间:2016-03-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛客网

金山wps服务端二面面经

前言:阿婆主很久很久没写过面经了,之所以写这篇面经是真的感觉wps相关的面经太少啦,既然有机会面试那就写一篇吧 直接上啦---> 协程和线程,比如协程底层的实现...

5496
来自专栏更流畅、简洁的软件开发方式

您把哪些东东看成了对象?

     我们初学面向对象的时候,书里面往往会用小猫、小狗、鸭子、汽车等举例子,说是可以把这些看成是一个对象,然后再弄出来一些属性、方法、事件等进行说明。   ...

19410
来自专栏java一日一条

为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到...

1351
来自专栏大数据和云计算技术

对象存储入门

10.5.3 对象接口 对象存储系统(Object-BasedStorage System)是综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS...

6174
来自专栏程序人生

谈谈编译和运行

[作者按] 今天 hacker news 爆炸性的新闻是我们敬爱的葛老头:Andy Grove 去了。70后,80后大多听过这个响当当的名字,也听过(或者读过)...

3989
来自专栏腾讯技术工程官方号的专栏

大道至简—GO语言最佳实践

被称为GO语言之父的Rob Pike说,你是否同意GO语言,取决于你是认可少就是多,还是少就是少。

2.6K12
来自专栏PPV课数据科学社区

5个酷毙的Python工具

工欲善其事必先利其器,一个好的工具能让起到事半功倍的效果,Python社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法,下面这几个工具给我的工作也带来...

2829
来自专栏小文博客

SkinMaster(原LOL换肤大师)同步更新——小文’s blog

5536
来自专栏Java成长之路

mo9 2年java面试总结

mo9是一家做数字货币交易所的公司,在4月份的时候自己去mo9参加了java开发的面试。mo9的面试更加注重基础,问了很多java基础方面的知识。下面将面试的一...

1042
来自专栏铭毅天下

Elasticsearch聚合后分页深入详解

1、Elasticsearch支持聚合后分页吗,为什么? 不支持,看看Elasticsearch员工如何解读。 ? ? 这个问题,2014年在gith...

95511

扫码关注云+社区