如何让JS代码变的安全?

天翼云开发者社区
• 阅读 105

本文分享自天翼云开发者社区《如何让JS代码变的安全?》,作者:温****双

前端JS代码,直接暴露在浏览器中,任何访问者,都可以随意查看代码。这就导致代码可以被分析、复制、盗用等,进而引发安全问题,如被利用代码bug攻击、揭露功能逻辑、复制出雷同应用等等。

对JS代码进行保护:混淆&加密,使代码不可读。即:它人依然可以看到代码,但看到的是加密的代码、无法理解代码,更无法修改。通过混淆加密,使代码变的难以阅读和理解。

如果说混淆后机器能执行,人就能理解,只是需要的时间长短问题。这种极端的说法,从理论上来说没错,如果可以投入足够长的时间,程序员甚至可以直接用0101写代码。而从实际角度而言,一段代码如果保护后分析需要的时长,超过开发需要的时长,保护的目的就达到了,就会劝退99.9999%对它有想法的正常人类。

从技术上说用JS编程实现对JS代码混淆加密。Eval思路不可用:可以被下断点调试或API HOOK,而轻松还原出原始代码。可逆加密方式不可用:加密方式可逆,则必然有解密函数,只需定位于解密出口,即可得到原始代码。异步代码获取并执行不可用:同样可被调试或hook,得到代码。可取的方式:代码混淆+数据加密。

混淆原理是非replace或regexp方式字符串替换,而是对JS源码进行重编译。从源码,进行词法分析、语法分析、得到AST(抽象语法树),此处是重点,得到AST后,在AST中执行关键混淆加密操作,如:字符算阵列化、字符加密、平展控制流、僵尸代码值入、反调试埋雷、花指令插入等,最后,再将AST重建为JS代码。这样就得到了一份被更改的面目全非的安全JS代码:不可读、不可理解、不可修改、不可还原。

点赞
收藏
评论区
推荐文章
Souleigh ✨ Souleigh ✨
3年前
前端 - 常见的异常捕获方法
前端异常捕获在ES3之前js代码执行的过程中,一旦出现错误,整个js代码都会停止执行,这样就显的代码非常的不健壮。从ES3开始,js也提供了类似的异常处理机制,从而让js代码变的更健壮,程序执行的过程中出现了异常,也可以让程序具有了一部分的异常恢复能力。js异常的特点是,出现不会导致JS引擎崩溃,最多只会终止当前执行的任务。回归正题,我们该如何在程序异常发生
晴空闲云 晴空闲云
3年前
javascript实践教程-02-javascript入门
本节目标1.掌握如何编写javascript代码。2.掌握javascript的3个弹框。3.掌握javascript的注释。4.掌握浏览器的调试工具控制台。内容摘要本篇介绍了如何在网页上编写js代码,如何引入外部js代码文件,js的3个弹框、注释语法,还有浏览器调试工具的控制台使用。阅读时间1520分钟。script标签如果我们需要在网页中编写
Stella981 Stella981
3年前
Confluence代码块(Code Block)宏
有时候现在wiki上插入代码,如何让代码高亮,变的有颜色,下面这篇文章可能会帮助你,先看下django代码高亮效果图!(https://oscimg.oschina.net/oscnet/70a554a8afdbc15c21538eac0ca83a367c1.png)代码块(CodeBlock)宏允许你在 Confluence页面中显示代码,
Stella981 Stella981
3年前
Hadoop Yarn REST API未授权漏洞利用挖矿分析
HadoopYarnRESTAPI未授权漏洞利用挖矿分析一、背景情况5月5日腾讯云安全曾针对攻击者利用HadoopYarn资源管理系统RESTAPI未授权漏洞对服务器进行攻击,攻击者可以在未授权的情况下远程执行代码的安全问题进行预警,在预警的前后我们曾多次捕获相关的攻击
Stella981 Stella981
3年前
Django自身安全机制
XSS攻击什么是XSS攻击XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(https://www.oschina.net/action/GoT
Wesley13 Wesley13
3年前
4、界面前端设计师要阅读的书籍
  前端工程师原来的职位是美工,原来只负责项目的一些简单网页制作,因为项目的需要,升级为前端工程师,这就涉及到JS等代码的编写了。前端工程师这个职位在目前来说算是新兴职位,在未来的几年里也是挺吃香的一个职位。  前端工程师要阅读的书籍不怎么多,但是也会涉及到前端代码的编写,比如JS。所以前端工程师也要阅读JS方面的书籍,当然要包括任何前端相关的书籍,在移
Stella981 Stella981
3年前
Post 方式进行文件下载
不啰嗦了,直接上代码,依赖jquery,下面代码可以直接复制到你的项目作为公共方法前端封装代码,作为公共方法://postDownload.js/下载文件,以POST的方式提交@paramoptions{url,data}使用方式postDownload({
Wesley13 Wesley13
3年前
PHP代码审计基础
初级篇更多是对那些已有的版本漏洞分析,存在安全问题的函数进行讲解,中级篇更多是针对用户输入对漏洞进行利用中级篇更多是考虑由用户输入导致的安全问题。预备工具首先要有php本地环境可以调试代码总结就是1\.可以控制的变量【一切输入都是有害的】2\.变量到达有利用价值的函数\危险函数\【一切进入函数的变量是有害的】程序的本质是变
铁扇公主 铁扇公主
1年前
WebStorm最新中文介绍+完整安装教程 v2023.2.3
WebStorm是一款由JetBrains开发的基于JavaScript的开发工具软件,被广大中国JS开发者誉为“Web前端开发神器”、“强大的HTML5编辑器”和“智能的JavaScriptIDE”等。WebStorm具有的功能包括:智能的代码补全、代码
新支点小玉 新支点小玉
10个月前
CNAS中兴新支点——源代码审计对企业有哪些好处
源代码扫描,对应用程序进行静态漏洞扫描,分析源代码中存在的安全风险,运行应用于模拟器中对应用进行实时漏洞攻击检测。你是否了解源代码扫描对企业的好处?一、源代码扫描,通常能够帮助企业解决这些问题:1、软件代码中安全漏洞和未声明功能的存在是信息安全事件频繁发生
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
675
粉丝
15
获赞
40