企业级 JavaScript应用:机遇,威胁与解决方案

做者:Jscramblerjavascript

翻译:疯狂的技术宅php

原文:blog.jscrambler.com/enterprise-…前端

未经容许严禁转载java

Enterprise JavaScript: Opportunities, Threats, Solutions

若是你正在使用 JavaScript,那你应该熟悉它的历史。这个有着 24 年历史的编程语言在过去几年里发生了巨大的变化,特别是随着 Node.js 和 JS 框架的出现。算法

若是当初 JavaScript 成为一种使网站变得动态且更有趣的噱头,那么今天的状况就彻底不一样了。 JavaScript 是使今天的如此 Web 强大的主要缘由npm

97%的现代 Web 应用使用了 JavaScript,几乎每一家 500 强公司都依赖 Node.js 和 JavaScript 来建立 Web 和移动应用应对激烈的竞争。编程

随着渐进式 Web 应用做为本机应用的可行替代方案而被快速采用,这种增加彷佛确实会加速。 JavaScript 不只适用于 Web,也适用于移动端和能够跨平台的桌面端。前端工程化

尽管其有着众多优点和商业价值,可是咱们仍然必须考虑另外一面:使用 JavaScript 所涉及到至关大的安全威胁浏览器

威胁

JavaScript 须要由浏览器处理才能工做。这意味着它没法以可行的方式进行加密。任何人均可以访问、阅读和修改 JavaScript 代码。虽然看上去能够认为只要公司不在客户端存储重要的业务逻辑,这就不会成为问题。可是服务器调用须要时间,而在性能相当重要的服务中,例如流媒体、电子商务或游戏,这不是很好的选择。所以出于性能考虑,专有算法须要被放置在客户端。安全

当咱们将专有算法和暴露环境这两样结合起来时,会引起一个灾难。长期以来,恶意攻击者一直在利用暴露的 JavaScript 窃此代码并从新分发山寨应用,并且这只是冰山一角。

暴露的 JavaScript 打开了自动化滥用的大门。例如,云提供商能够为新账户免费提供1个月的服务,这可能会被恶意参与者经过自动建立账户的脚本滥用。这在不适用验证码的用例中尤为重要。

为了控制账户滥用并打击欺诈行为,一些公司部署了 JavaScript agents 以抵御僵尸程序或提供设备指纹识别。可是由于这些 agents 的代码也暴露了,攻击者也能够对其进行逆向工程来彻底绕过它们。

还有做弊和盗版的状况。攻击者能够利用暴露的 JavaScript 来绕过程序的限制,在不付费的状况下解锁新功能或违反许可协议 —— 这些都会对公司的业务模式构成威胁。

经过逆向工程游戏源码来绕过付费

经过逆向工程游戏源码来绕过付费

许可协议和版权对于视频或音频流等数字内容尤其重要。经过访问 HTML5 网络播放器的底层 JavaScript,攻击者能够捕获并从新分发流,从而致使流媒体提供商的巨大商业损失

企业依靠 JavaScript 来开发应用,这些应用程序是其业务的核心,却将其核心逻辑和专有算法置于攻击之下。一样他们也没法加密这些代码。但他们能够作的是经过一系列防止全部上述攻击行为的安全层来保护 JavaScript。

解决方案

当咱们解决代码盗窃和逆向工程的威胁时,保护 JavaScript 的惟一可行方法是隐藏其逻辑。这是 OWASP 关于其移动应用十大安全风险的推荐,M9-逆向工程

为了防止逆向工程,你必须使用混淆工具。

JavaScript 混淆是保护 JavaScript 源代码的核心步骤。混淆的 JavaScript 对于阅读、理解和逆向工程来讲极其复杂。可是不一样的 JavaScript 混淆器提供了不一样的保护级别,开发团队一般很难决定应该使用哪一种工具。免费的混淆器只能提供基本的转换,并且可使用自动化工具轻松反转。在决定使用哪一种混淆工具时,除了考虑工具的成本以外,你还应该问本身:

若是攻击者要从新分发、篡改个人代码或绕过咱们的许可协议,那个人业务成本是多少?

并且咱们仍然必须考虑更高级的程序被滥用、做弊和盗版的威胁。免费的混淆器并不能提供真正的保护。一样,企业级的问题须要企业级解决方案。

面向企业市场的 JavaScript 保护解决方案。它不只要提供最早进的混淆技术,还须要从如下三个面层来缓解调试和尝试篡改的威胁:

  • 代码锁 — 经过不一样的程序锁来限制 JavaScript 应用的执行时间、地点和人员。
  • 自我防御 — 当受保护的代码面临调试或受到篡改时,完整性检查会破坏掉程序或触发你所指定的对策。
  • 自我修复 — 运行时完整性检查,自动将篡改后的代码恢复为原始、干净的代码,而不会对程序进行破坏或影响用户体验。

这些技术的结合可以有效地缓解滥用、欺骗、盗版、代码盗窃以及经过客户端进行逆向工程的尝试。

展望

JavaScript 将来的前景很是不错。企业能够经过利用 JavaScript 的通用性、灵活性和极其活跃的社区,在 Web 和移动设备上提供高级的用户体验,并不断提升服务标准。

虽然咱们不但愿恶意行为者为了本身的利益而盯上本身的应用,但公司能够(而且应该)采起行动来隐藏其代码逻辑并积极的阻止调试和篡改的企图。与某些人的观点不一样,这不是传统的安全问题 —— 而是须要添加新的安全层来进一步保护公司的关键业务资产。

欢迎关注前端公众号:前端先锋,获取前端工程化实用工具包。

相关文章
相关标签/搜索