首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 不用 eval 加密工具

JavaScript 中的 eval 函数用于执行字符串形式的 JavaScript 代码。然而,由于安全风险,通常不建议使用 eval。以下是一些替代方案和相关概念:

基础概念

  1. eval 的安全性问题
    • eval 可以执行任意代码,这使得它容易受到代码注入攻击。
    • 如果输入不可信,使用 eval 可能会导致严重的安全漏洞。
  • 替代方案
    • JSON 解析:使用 JSON.parse 来解析 JSON 字符串。
    • 函数构造器:使用 Function 构造器来创建函数。
    • 沙箱环境:在受限的环境中执行代码,例如使用 Web Workers 或 iframe。

相关优势

  • 安全性:避免使用 eval 可以显著减少代码注入的风险。
  • 性能:现代 JavaScript 引擎对 JSON.parseFunction 构造器进行了优化,通常比 eval 更快。
  • 可维护性:代码更清晰,更容易理解和维护。

类型与应用场景

  1. JSON 解析
    • 类型:用于解析 JSON 数据。
    • 应用场景:处理来自服务器的 JSON 响应,配置文件等。
    • 应用场景:处理来自服务器的 JSON 响应,配置文件等。
  • 函数构造器
    • 类型:用于动态创建函数。
    • 应用场景:需要动态生成函数逻辑的场景。
    • 应用场景:需要动态生成函数逻辑的场景。
  • 沙箱环境
    • 类型:用于在隔离环境中执行代码。
    • 应用场景:需要执行不可信代码的场景,如在线代码编辑器。
    • 应用场景:需要执行不可信代码的场景,如在线代码编辑器。

遇到的问题及解决方法

问题:如何安全地执行动态生成的代码?

原因

  • 直接使用 evalFunction 构造器可能会导致安全问题,特别是当代码来源不可信时。

解决方法

  1. 使用沙箱环境
    • 利用 Web Workers 或 iframe 创建一个隔离的执行环境。
    • 利用 Web Workers 或 iframe 创建一个隔离的执行环境。
  • 代码审查和验证
    • 在执行之前对代码进行严格的审查和验证,确保它不包含恶意内容。
  • 使用第三方库
    • 一些库如 vm2 提供了更安全的沙箱环境。
    • 一些库如 vm2 提供了更安全的沙箱环境。

通过这些方法,可以在保证安全性的同时实现动态代码的执行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 爬虫入门到放弃07:爬虫没那么简单,带你走进js混淆、eval加密、字体加密

    eval() & JS加密 js被加密后放在eval()中执行。如果想还原js,在开发者控制台使用console.log()输出解密后的js。...因为不论是eval()还是log(),js解析执行最终都依赖于浏览器内核。...那么,说好的eval呢,说好的加密的js呢? 少侠莫慌,这就带您继续看下去。如果你仔细看,你就会发现上面的js的文件名是匿名/临时的,所以说这不是网站原有的js文件,而是浏览器内核解析后的js。...这不,如图,eval()有了,加密js也有了,拷贝成文本如下: eval(function(h, b, i, d, g, f) { g = function(a) { return...()中的加密js使用console.log()打印出来,结果和之前的匿名js一样。

    2.2K20

    “JS加密”等于“JS混淆”?

    JS加密、JS混淆,是一回事吗?是的!在国内,JS加密,其实就是指JS混淆。...1、当人们提起JS加密时,通常是指对JS代码进行混淆加密处理,而不是指JS加密算法(如xor加密算法、md5加密算法、base64加密算法,等等...)2、而“JS混淆”这个词,来源于国外的称呼,在国外称为...,js是直接执行源码、对外发布也是源码),所以,为了提升js代码安全性,就有了js加密、js混淆操作。...5、很多人讨论JS加密的必要性,有的人认为很重要,有的人认为不需要,人们看法并不统一。简单来说:如果是无所谓的代码,随便别人怎么拷贝或修改都无所谓,那就直接不用管。...如果代码有价值,不希望别人随便copy去使用、不想让别人知道其中逻辑等等,那就加密。加密后的js代码,不一定能保证100%安全了,但肯定比不加密强,很简单的道理。6、怎样进行js加密、js混淆?

    12910

    JS加密:JavaScript代码加密混淆

    JS加密,即JavaScript代码加密混淆,是指对js代码进行数据加密、逻辑混淆。使js代码不能被分析、复制、盗用,以达到保护js代码、保护js产品、保护js知识产权的目的。...JS加密定义 JS加密,即:JavaScript代码加密混淆、JavaScript代码混淆加密。JavaScript,简称JS,加密指对JS代码进行密文化处理,使代码难以阅读和理解。...JS加密原理专业的JS加密工具,会进行以下步骤实现加密过程。1、JS代码转化为ASTAST即抽象语法树,是JS代码的底层表现形式,在此阶段,JS代码会经历词法分析、语法分析,直到AST树建立。...JS加密特点JS代码加密,有多种技术手段,大体上可分为:编码、加密算法、代码变形、逻辑变化。...JS加密应用JS加密应用,有不少工具,最具代表性的两款是JScrambler和JShaman,在行业中都是著名产品、是业内顶级的JavaScript混淆工具。

    77230

    JS加密--基础总结

    学习资源推荐 基础流程 加密方法 RSA加密 微型加密算法(XXTEA) MD5加密 JS加密常见混淆总结 eval加密 变量名混淆 控制流平坦化 压缩代码 Python实现加密方法合集 常用的加密有哪些...,要把所有加在原生对象上的方法都找出来 函数找多了没关系,只要不报错不会影响结果,但是不能找少了 直接保存整页JS浏览器调试 加密方法 RSA加密 找了一些简单网站,查看了对应的RSA加密的方法,总结了以下套路...JS加密常见混淆总结 eval加密 把一段字符串当做js代码去执行 eval(function(){alert(100);return 200})() 例子: 漫画柜,空中网 之后会单独写一篇漫画柜的解密..._0x21dd83、_0x21dd84、_0x21dd85 用十六进制文本去表示一个字符串 \x56\x49\x12\x23 利用JS能识别的编码来做混淆 JS是Unicode编码,本身就能识别这种编码...其实上面的步骤不一定都要去手动扣JS, 我们的大Python已经为我们造好了轮子,如果可以判断js的加密没有做其他的更改,我们就可以使用造好的轮子直接实现对应的加密。

    6.5K41

    JS逆向加密解密工具Crypto Magician、乐易助手、WT-JS 下载使用

    JS逆向加密解密工具Crypto Magician、乐易助手、WT-JS 下载使用 ---- 文章目录 JS逆向加密解密工具Crypto Magician、乐易助手、WT-JS 下载使用 前言 一、Crypto...Magician 1.下载地址 2.部分功能展示 二、乐易助手 1.下载地址 2.部分功能展示 三、WT-JS 1.下载地址 2.部分功能展示 总结 ---- 前言 方便开发者更好的定位加密算法,提高了开发的效率...pwd=chhj 2.部分功能展示 消息摘要算法 对称加密算法 非对称加密算法 二、乐易助手 1.下载地址 下载地址:https://pan.baidu.com/s/17ir4KJaXte1e88l7VfMs5A...pwd=mn1h 2.部分功能展示 网页提交 JS模拟调试 字符串转换 三、WT-JS 1.下载地址 下载地址:https://pan.baidu.com/s/1YNfj3KziWwcz1P2nt

    4.4K20

    浅析绕过js加密

    我们在全局搜索sm2Encrypt,最终在sm2.js文件中找到了该加密函数。通过百度搜索sm2加密算法,发现该算法是国密加密算法。...经过一个函数一个函数的跟踪其依赖,最终将其加密算法模拟了出来,运行截图如下: sm2.js代码如下: 最终我们可以使用burpsuite的插件对这个 js 加密函数进行调用爆破,如下: 至此,js...我们看最后的一个while 循环,循环里面执行了 eval函数。 我们暂且不看eval函数里的内容是啥意思。...我们将eval函数里的内容赋值给 test,然后控制台输入这个内容最后调用eval函数执行这个test。这样,我们就可以在控制台看到最后执行的是啥东西了。...在工作中,碰到了js加密的网站不用慌,慢慢细心的分析,总会有意想不到的收获!

    7.2K20

    JS加密、JS混淆技术原理简介

    JS加密、JS混淆技术原理简介JS加密、JS混淆、JS混淆加密,所指相同,都是指对JS代码进行加密式处理,使代码不可读,以达到保护代码的目的。...其原理,根据加密或混淆处理深度不同,大体上可分两种,下面简述技术原理。第一种,对代码进行字符替换,比如Eval加密、JJEncode加密,都属于这一类。这种方式,直接对JS代码进行处理,是可逆的加密。...执行时,加密的代码会经过解密算法,还原出原始代码,对原始代码进行执行。这属于一种简单加密混淆,可逆、容易解密,安全性很低。...第二种,操作层面与前者最大的差别是,不是对JS代码直接进行分析并加密,而是会进行低层处理,先会对JS代码进行词法分析、语法分析,转化成AST(抽象语法树),得到AST之后,混淆加密操作都是在AST中进行...,完成语法树加密修改之后,再根据AST重新生成全新的密文式JS代码,专业的JS代码加密混淆工具,比如JShaman、JScrambler都是属于这一类。

    68440

    crypto加密:后端PHP加密,前端JS解密

    使用cdn加载: https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js 但有时build上传到服务器,浏览器加载不了...image.png 在项目build文件夹下找到webpack.base.conf,配置CryptoJS image.png JS端: string 要加密/解密的字符串 code 秘钥字符串 operation...默认false表示加密,传入true表示解密 image.png // 加密解密方法:string-需要解密的字段 code-约定的密钥 operation 默认false表示加密,传入true...PHP端: $string 要加密/解密的字符串 $code 秘钥字符串 $operation 默认false表示加密,传入true表示解密 function secret($string,$code...如果需要将加密的字符串在网址中传递,使用urlencode($str)函数转码即可。

    10.2K71

    【JS逆向】某猫小说加密数据生成JS加密逆向分析探索!

    一个小说网站文字内容加密,不用说,肯定也是js加密,加密特征也比较明显,尤其是适合新人学习js加密逆向分析数据和内容,算是比较简单,只需要扣取代码,直接用获取的加密参数运行即可获取数据内容。...网址: aHR0cHM6Ly93d3cuY2l3ZWltYW8uY29tL2NoYXB0ZXIvMTAzNTQzODcy 特征: 数据内容为加密数据段 打开目标网址,访问网站 2.获取加密数据,找到加密特征...3.老规矩,根据特征,搜索关键字,这里我们搜索 chapter_content 4.结果非常明显,只有一个加密js文件,继续搜索 chapter_content 5.打开至面板,下断点,可以多下几处...18.直接去除那一段,再把加密参数代入 19.修改代码,本地调试运行效果 补坑:d.base64.encode 调用 这个调试调用费了很长时间,不懂怎么调试调用base64加密解密代码,后抠出源码调用...PS:建议补好js基础知识! 最后还有一个参数需要获取到! 可惜的是在 Python 爬取中还是存在限制,没有获取到数据!

    33310

    【JS逆向】某旗网加密数据生成JS加密逆向分析探索!

    一个小说网站文字内容加密,不用说,肯定也是js加密,加密特征也比较明显,尤其是适合新人学习js加密逆向分析数据和内容,算是比较简单,只需要扣取代码,直接用获取的加密参数运行即可获取数据内容。...网页中无正文内容,该内容由js文件加密生成,需解密逆向获取!...打开页面,查找加密特征 2.获取加密特征,关键字 加密特征还是比较好找的 3.搜索关键字 ChapterContent 很明显在第二个结果,js文件中 4.打开查看,继续搜索关键字 ChapterContent...5.打开至面板断点调试 6.可以看到正文文本内容已经生成成功了 7.查看代码,分析加密函数 8.不放心的话,可以继续打断点验证 9.可以看到加密过程 10.抠出代码,本地js文件调试 本地运行效果:...使用Python 调用js 文件获取数据效果: def get_data(): url = "https://c13.shuqireader.com/pcapi/chapter/contentfree

    27310
    领券