Web前端JS代码需要保护吗?
这得具体情况具体分析。
1、如果只是写一段web页面图片轮播,或是跑马灯效果等等之类简单的功能。那不需要保护。
2、如果是精心设计一个绚丽的特效,如果想要保护这段自己付诸幸苦实现的特效代码不被他人随意拿去使用,那应该保护这段JS代码!
3、如果页面上有重要的功能是用JS代码管控的,比如交易逻辑、帐号密码信息、个人隐私、甚至有与远程服务器或数据库的通信等等,那么相关的js代码非常应该被保护、应该做JS代码防盗保护!
否则可能引起被黑客分析、攻击等严重问题。安全相关的事情,从来都要防患于未然、不可心存侥幸。除非它对你毫不重要。

如何保护Web前端JS代码?
1、打包&压缩
有人认为打包、压缩就是对JS代码的保护。确实,打包在一定程度上可以起码些许保护作用,好像看起来是如此。但打包、压缩的目的并不是为了保护JS代码,而是为了使用方便、减小代码体积,方便使用、便于传输。比如模块化的编程可能产生200个JS文件,如果使用时逐一用“script src”进行引用……这是种折磨,不管是对于代发人员,还是网络加载(浏览器也会生气!x_x)。
类似Webpacket、Gulp进行打包,可以将这些多个JS合成到一个文件,并且可能会进行回车、换行、空格的删除,以实现代码压缩,也有一些简单混淆操作:把长变量名改为统一风格的短变量名等。然后,最终生成的一个文件。代码总量减小了、可读性差了、使用方便了。同时让有些人认为这也实现了JS代码保护。其实、实际上、当然的代码并没有被保护:可读性依旧,只是代码量大了一些而已,只要稍稍耐心的读代码,会发现,代码依然是很易理解的,没有多少安全性可言。
2、混淆&加密
前端JS代码的保护,必需要混淆和加密共用。
单独的JS源代码加密,是行不通的,更不可能有所谓的JS不可逆加密。因为代码在浏览器端执行时,必须转解密还原成原始代码,才能被浏览器的JS引擎识别和运行。在解密后,会存在完整的原始JS代码。这是非常不安全的存在,有多种方法可将原始的JS代码显示出来。
JS代码混淆被不少开发人员认为是不够高端的JS代码保护方式,听起来不如JS源码加密更具安全性。事实上,混淆也有多个级别。比如比较低端的字符搜索和串替换、随机插入伪僵尸代码、字符串十六进制化等等。而也有高端的手法,会先进行语法分析、词法分析,重建语法树,相当于已经实现了一个JS引擎,在引擎中处理代码,那么,就可以在其中任意一步进行自由度极高的操作,比如在语法树中插入新的语法结构、比如可以将字符串全部提取并进行加密、可以对变量进行整体有规则化的重定义使无意义化等等。这样就可以实现真正的代码重建。这样重建的JS代码安全性,将会有一个质的提升。
当正真的混淆和加密联合使用,如JShaman JS保护, 可以实现真正的JS代码安全保护。JS混淆中融入JS加密,JS加密中又嵌入JS混淆。这样保护后的代码,即使在客户端执行环境中被逆向还原,得到的也是大量含义不明的函数、代码、字符串。特别重点是:代码已经经过了重建,这时逆向得到的也是分离后的重建的无意义JS代码、大量的僵尸代码、混淆的字符串、不明含意的变量。可读性与原始代码相比……天壤之别。
固执的人或许还会说:没有破解不了的保护方案,只要我认真、用心、用时的分析,还是能分析出原始代码含意的,确实,可能如此。
但是,原本的代码,可能只需要读10分钟,而从这样保护后的JS代码读取原始含意,可能需要……10个月。而这时候,我们的JS代码可能已经更新到下一版了。
JS代码保护的目的已经达到了,不是吗?

如何保护前端JS代码?前端js代码加密相关推荐

  1. 常用前端JS代码与JS方法

    [返回Z平台-帮助文档-首页] Z平台的核心JS方法都存储在 /webapp/js/z.js 文件中,如果想更全面的学习Z平台的开发,建议大家熟读该文件.平台前端的核心JS方法都在这. 共用JS方法 ...

  2. 前端表白纪念日用js+html+css实现的页面代码复制粘贴就能用

    前端表白纪念日用js+html+css实现的页面代码复制粘贴就能用页面如下: 代码: <!DOCTYPE html> <html><head><script ...

  3. android js 代码混淆工具,好用的JS(Javascript)混淆加密工具-HDS JSObfuscator 2.14版

    好用的JS(Javascript)混淆加密工具-HDS JSObfuscator 2.14版 书法字体2017.06.23css压缩 分享一款好用的JS混淆加密工具:HDS JSObfuscator ...

  4. 前端代码为什么会有低代码及无代码

    概念 什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解? 行业里流行观点,低代码是更加易用的搭建系统,无代码是图形化和可视化编程.这种观点把低代码和无代码开发分别置于 UI ...

  5. 前端JS都是用什么加密的?

    写过 js混淆器,谈一些浅显的个人看法. 个人认为,js的不可读化处理分为三个方面:压缩(compression).混淆(obfuscation) 和加密(encryption).(不可读化处理,这是 ...

  6. 「跨域」利用node.js实践前端各种跨域方式(上)

    前言 常言道,"读万卷书,不如行万里路".技术的学习也是如此,唯有实践才能更清楚的明白原理和加深印象,因此本文会利用node.js对前端的各种跨域方式进行实践,强烈建议一步一步跟着 ...

  7. 前端利器—1—转型JS编程

    JS作为前端开发的必备语言工具,虽然JS对非编程人员来说比较容易上手,但是,要真正的精通JS开发,尚且假设学习过c++.java等面向对象语言的一种.因为对oo开发人员,迅速掌握JS的开发要点,是顺利 ...

  8. webstorm打开网页_网页前端之HTML+CSS+JS

    古柏高枝银杏实,几千年物到而今. 玉纤雪腕白相照,烂银壳破玻璃明. 银杏(学名:Ginkgo biloba),落叶乔木,树冠圆锥形,枝轮生,叶互生,在长枝上散生,二歧状分叉叶脉,果具长梗,下垂,倒卵圆 ...

  9. 前端开发中通过js设置cookie的一组方法

    js方法的完整代码如下: var cookie = {set:function(key,val,time){//设置cookie方法var date=new Date(); //获取当前时间var e ...

  10. 二十三、前端必学Node.js入门

    @Auhor:Runsen @Date:2019年12月04日 @update Date:2020年5月31日 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, ...

最新文章

  1. 8-flutter 异步和线程
  2. HttpServlet详解
  3. 【小项目关键技术四】液晶显示屏
  4. PHP5中的魔术方法
  5. 【锋利的Jquery】读书笔记五
  6. Web API 接口
  7. socket编程五种模型
  8. ios上传图片 java_iOS ASIFormDataRequest上传图片 前后台代码
  9. 算法(0)—— 打造一个C开发库
  10. Linux笔记(十二) Linux集群搭建(附带视频详解)
  11. 西安火车站迎来“大手术”
  12. 1688API item_search_img - 按图搜索1688商品(拍立淘)
  13. 深入理解GAN对抗生成网络
  14. vivo系统升级服务器无响应,vivo系统升级教程
  15. 回射程序改进3——消息的群发
  16. 实现轮播模拟点击事件
  17. PT100热电阻温度传感器 铂热电阻 德国贺利氏 硅胶四氟镀锡屏蔽线
  18. NIST加密标准是什么意思?
  19. 什么?作为程序员你还不知道人工智能搜索引擎?
  20. BSD操作系统大盘点:四种主流BSD

热门文章

  1. 816墨盒计算机无法与,西通PG-815、CL-816兼容墨盒和总结
  2. JavaOOP 面试题
  3. php gpc绕过,phpyun最新版两处注入(无视gpc)
  4. phpyun职位表“phpyun_company_job”添加字段,保存数据到数据库
  5. 【MapReduce】 MR初识
  6. Java算法:牛客网字节跳动笔试真题算法Java版1-27题
  7. html页面实现打印预览功能,js实现打印、页面设置、打印预览功能
  8. 大商创小程序前端_正版授权风暴!大商创商城系统开启免费送授权活动
  9. 「残酷乐队生涯」信息参考
  10. channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILE