客户端JavaScript安全性的重要性

本文由JScrambler提供。 感谢您支持使SitePoint成为可能的合作伙伴。

如今看来,无论看上去在哪里,都注定会看到至少部分使用JavaScript创建的内容

原因之一是JavaScript非常易于学习和使用。 另一个原因与易合并的开源库(如jQueryReact.jsBackbone.jsAngular.jsEmber.js)的广泛可用性有关。

当加在一起时,这极大地促进了发展潜力。 对于应用程序有好的想法的人不一定要成为开发人员或雇用开发人员才能使这些想法成为现实。

当然,这种轻松的开发方式也增加了安全漏洞的风险,因为可以包含和使用这些库,而无需知道背后的实际情况。

JavaScript安全性

关于JavaScript安全,基本上有两种思路:一种是保护您的代码免遭黑客入侵的问题,另一种是从专有观点出发的保护-防止代码被篡改或被盗。

服务器端托管。 传统上,代码保护意味着在服务器上存储尽可能多的代码。 这可以防止您的代码被撬开,并且还允许服务器在性能方面进行繁重的工作。

如今,这仍然适用,但远非一刀切的解决方案。 将代码存储在服务器上确实可以提供最佳保护,但是它也有一些缺点。

一个缺点是,这意味着您正在强制建立互联网连接。 这并不总是一个问题,但是如果您要开发要脱机工作的应用程序,这是不可行的。

另一个考虑因素是性能。 服务器调用需要时间。 对于简单的应用程序来说,这不是一个大问题,但对于游戏等高性能应用程序来说,这可能是一个大问题,因为过多的延迟可能会破坏用户体验。

为什么加密不起作用。 许多人都会问一个不可避免的问题:“为什么我不能只加密我的文件?” 这是一个好主意。 真。 问题在于它不能完全那样工作。 您可以加密文件,但是它们对浏览器没有任何用处。 您需要解密它们以使它们对浏览器可读,使您回到第一个平方。

JavaScript无处不在

JavaScript是一种非常强大的语言,但是在安全性方面也有一个明显的缺陷:它是一种解释性语言。 JavaScript代码不是在分发前被编译为机器代码,而是在运行时执行。 当然,这也意味着,默认情况下,几乎所有下载基于JavaScript的软件的人都将完全有权访问驱动该程序的代码。

JavaScript现在甚至可以在Web浏览器的范围之外运行,这一事实使得安全性成为一个更为重要的话题,即使这仅仅是由于大量未编译的代码所致。 在浏览器中,JavaScript通常是“沙盒化”的,这意味着,除非存在一些缺陷,否则它对于您的系统而言是相对安全的。

但是,现在,有许多框架具有标准化的API,例如PhoneGap,Cordova,Node Webkit等,这些框架允许JavaScript与本机系统API进行交互。 这些为JavaScript应用程序开发人员提供了很大的灵活性和功能。

例如,您可以编写HTML5和JavaScript桌面软件的代码,该软件能够读取文件或将文件写入硬盘驱动器,或者使用本机系统功能,例如允许访问您的相机,电话信息,wifi,蓝牙,GPS等。 。

当您将所有这些加在一起时,它为潜在的黑客提供了一个相当大的源代码操场。

JavaScript模糊处理的作用是什么?

当涉及到客户端JavaScript安全性时,开发人员无法采取任何措施来确保100%的保护。 话虽如此,JavaScript模糊处理才开始发挥作用。

混淆是有条不紊地遍历代码,对其进行转换和重新排列的过程,其全部目的是使肉眼几乎无法阅读和理解它,但保持其功能。 (注意:缩小与混淆不同,您可以轻松地从缩小的代码中检索原始代码。)

尽管它确实有其局限性,但是除了将所有代码锁定在服务器上之外,混淆是开发人员必须保护其JavaScript代码的最佳选择。 但是并不是所有的混淆实际上都在保护您的代码。

选择正确的JavaScript混淆器及其他

有数十种混淆程序可供选择,如何选择最适合自己的方案? 选择时需要考虑以下事项。

下载源。 可能最重要的考虑因素是您从中下载软件的来源。 这条特别的建议应该适用于您从Web下载的几乎所有内容。 始终检查下载来源的信誉。

彼得·格拉曼蒂克(Peter Gramantik)在“ 为什么免费的混淆器不总是免费的 ”一文中描述了他对“免费的” JavaScript混淆器的体验。 他描述了如何混淆代码,但该程序还将自己的恶意代码插入到混合文件中。

如果他没有对代码进行混淆处理以查看实际情况,那么他永远不会注意到它。 故事的寓意:始终对从何处下载软件持怀疑态度。

兼容性。 要查找的下一个最重要的功能是兼容性。 确保您选择的任何程序都与您正在使用的任何库兼容。 如果不这样做,它输出的代码可能不再起作用,并且您可能花费更多的时间来查找和修复错误。

附加功能和弹性。 您需要注意的其他事项是附加功能和您选择的程序可能提供的保护弹性。 有些服务采用专业的集成软件包提供,有些甚至提供了一些超越迷惑性的额外功能! 这些功能使您可以确保所应用的保护不会在数分钟内轻易撤消,甚至可以帮助您在应用上执行许可。 例如,JavaScript保护公司JScrambler提供:

  • JavaScript混淆
  • 通过最小化优化性能
  • 死代码插入
  • 功能概述
  • 浏览器和域锁定
  • 代码功能的到期日期
  • 借助反调试和反篡改技术阻止JavaScript动态分析
  • 与大量JavaScript库的兼容性和合规性

JavaScript的使用量的增加带来了很大的希望,但是其解释性和使用量的增加的组合也为更大的风险敞开了大门。 但这并不一定是令人恐惧的事情,因为您可以采取很多措施来降低业务风险。

如果您具有敏感的客户端JavaScript代码,并且希望避免对该代码进行篡改,则值得投资最好的JavaScript保护来提供所需的额外安全层。 如果您想查看JScrambler提供的一些功能,请访问www.jscrambler.com以注册免费试用!

From: https://www.sitepoint.com/importance-client-side-javascript-security/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值