破解小程序禁止使用JS解释器动态执行JS(eval5、estime、evil-eval等)代码的终极解决方案

这篇具有很好参考价值的文章主要介绍了破解小程序禁止使用JS解释器动态执行JS(eval5、estime、evil-eval等)代码的终极解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于被小程序禁止使用eval函数的问题,大家都多少了解了,新规则已经限制死了。请看下面新规则。

破解小程序禁止使用JS解释器动态执行JS(eval5、estime、evil-eval等)代码的终极解决方案
破解小程序禁止使用JS解释器动态执行JS(eval5、estime、evil-eval等)代码的终极解决方案

既然要求如此严格,那么有没有其它解决方案呢,所谓上有正常,下有对策。故今天这篇文章就是要提供新的思路实现动态执行js代码的方案。

云函数 云对象

是的,既然在代码里面直接写eval函数或者引入eval5 会被小程序检测到拒绝审核,那么老子就把它放到云上,你奈我何 ?下面给大家展示下我已经上线并审核通过的实现逻辑。

首先:云函数、云对象还是非常简单的,目前个人使用的时uni-app 这个框架开发的小程序,不得不说实在是太好用了,一个框架开发适配10多个终端的框架,不得不说牛的一笔。不废话了,直接创建关联云空间,目前个人使用的是阿里的空间,可以免费使用50个,足够咱们使用了。
破解小程序禁止使用JS解释器动态执行JS(eval5、estime、evil-eval等)代码的终极解决方案

不会创建的呢,给大家一个传送门,分分钟钟看着api就能搞定,就是这么简单。

第一步:定义一个云函数或者云对象都是可以的,并上传部署,我们暂且用云对象 object_js_eval 去实现吧。
这个对象里面写个方法:完整代码如下:

// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
module.exports = {
  evaEvent(event){
 	if (!event || !event.jsStr ) {
 		return false ;
 	}
 	let Data = event.Data , str = event.jsStr ;
 	let res = eval(str)
 	return res
 }
}

好了,第二步我们就是要去调用这个云对象里面的计算方法。比如我定义的函数叫testUniCloud ,这个是比简单的 计算某条数据里面的2个属性值的和,当然也可以去写其它的表达公式,都是完全支持的,自己随意发挥吧。其实我要执行的就是后台给的一段js 计算公式:要计算 某条数据里面的 a + b 的结果,当然这是仅供测试玩的。

async testUniCloud(){
        let d = { a:1 , b:5} , s = 'Data.a+Data.b' ;
        let params = { Data:d, jsStr:s }
        const res = await cloud_object.evaEvent(params) 
        this.$utils.tips("云函数计算结果="+res);
}

页面中可以随意写个按钮事件去执行即可,下面看效果:

破解小程序禁止使用JS解释器动态执行JS(eval5、estime、evil-eval等)代码的终极解决方案

哈哈,,,轻轻松松搞定,而且我还通过审核喽!!!有问题的欢迎留言。
破解小程序禁止使用JS解释器动态执行JS(eval5、estime、evil-eval等)代码的终极解决方案文章来源地址https://www.toymoban.com/news/detail-495334.html

到了这里,关于破解小程序禁止使用JS解释器动态执行JS(eval5、estime、evil-eval等)代码的终极解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 『pycharm 』解决无法添加解释器,无法新建项目问题(是无法添加解释器,不是没有添加解释器)

    这个问题和大家常见的: 没有Python解释器 这种简单问题不同。请看问题描述。👇👇 如图,解释器列表空空如也,即使点击“ 添加本地解释器 ”也没有反应(那个展开小三角也是空的)。 所有项目都这样了,那里变成空的了。而且这些都是我自己的项目,之前都好好的。 删

    2024年02月11日
    浏览(68)
  • Pycharm 重命名SSH的conda解释器后,提示该解释器不可用

    目前已知是BUG,截至投稿日未修复 已经提交给youtrack.jetbrains.com,如下图:

    2024年01月17日
    浏览(67)
  • 解锁Spring Boot中的设计模式—02.解释器模式:探索【解释器模式】的奥秘与应用实践!

    解释器模式(Interpreter Pattern)是一种行为设计模式,它用于定义语言的文法,并且解释语言中的表达式。在Java中,解释器模式可以用于构建解释器以解析特定的语言或表达式,如数学表达式、查询语言等。 优点: 灵活性: 解释器模式可以 灵活地添加新的表达式和规则 ,因

    2024年02月19日
    浏览(69)
  • 解释器模式简介

    解释器模式( Interpreter Pattern )是一种行为型设计模式,它用于定义语言的文法,并解析和执行给定语言中的表达式。该模式将每个表达式表示为一个类,并提供了一种方式来组合这些表达式以实现复杂的语句。 定义了一种简单、可扩展的语法规则,使得可以灵活地处理不同

    2024年02月07日
    浏览(43)
  • 什么是解释器模式

    程序员必知!解释器模式的实战应用与案例分析 - 知乎 上边这篇文章写的比较好,有定义,有例子,还划了重点,引用一下重点: 解释器模式在日常Java开发过程中使用的非常多,它最大的优点在于灵活性:能动态地解释和执行代码,这在处理复杂逻辑或多变需求时特别有用

    2024年01月19日
    浏览(51)
  • 解释器模式(Interpreter)

    解释器模式是一种行为设计模式,可以解释语言的语法或表达式。给定一个语言,定义它的文法的一种表示,然后定义一个解释器,使用该文法来解释语言中的句子。解释器模式提供了评估语言的语法或表达式的方式。 解释器模式包含如下角色: Context,上下文,包含解释器

    2024年02月14日
    浏览(40)
  • 解释器设计模式

    解释器设计模式(Interpreter Pattern)是一种行为型设计模式,它定义了一种语言的文法,并建立一个解释器来解释该语言中的句子。这种模式通常用于需要解释或执行一种特定类型的语言的场景,例如编程语言的编译器或解释器、规则引擎系统等。 关键组成部分 抽象表达式(

    2024年02月21日
    浏览(55)
  • Python解释器安装教程

    1、进入官网下载想要的python解释器版本 官网下载地址:https://www.python.org/downloads/ 2、安装python解释器 (1)下载完成后双击该程序 (2)若不勾选Add Python 3.10 to PATH 安装完后需手动去添加环境变量则。可选择立即安装默认安装路径到C盘或自定义安装,这里演示自定义安装。

    2024年02月12日
    浏览(54)
  • 如何删除PyCharm解释器

    1.点击右下角解释器名称,选择解释器设置; 2.在弹出的窗口中点击解释器路径; 3.在弹出的窗口后选定想要删除的解释器,点击左边的减号即可删除。

    2024年02月11日
    浏览(78)
  • 设计模式(十五)解释器

    定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。解释器模式是一种行为型模式。 解释器模式是一种使用频率相对较低但学习难度较大的设计模式,它主要用于描述如何使用面向对象语言构成一个简单的语言

    2024年02月05日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包